---
title: カスタム処理でデバッグを目的としたログを出力できますか？
description: カスタム処理の気になる箇所で下記のような記述を追加すると、変数の中身を確認できます。
category: trouble
---

import StructuredDataFaqs from '@site/src/components/StructuredDataFaqs';

<StructuredDataFaqs faqs={[
    { question: "カスタム処理でデバッグを目的としたログを出力できますか？", answer: "カスタム処理の気になる箇所で下記のような記述を追加すると、変数の中身を確認できます。" }
]} />

カスタム処理の気になる箇所で下記のような記述を追加すると、変数の中身を確認できます。  

## loggerのプラグインを利用する
こちらのログは[カスタムログ](/ja/docs/management/custom-log-list/)で確認ができます。  
実行した結果をログに残したい場合はこちらをご利用ください。  

### 記述例

```smarty
{logger msg1=$json msg2=$output msg3=$smarty.requrst msg4=$example}
```

### ログの確認方法
[ログ管理]をクリックします。  
![Image from Gyazo](https://t.gyazo.com/teams/diverta/6ebf4c8775159cbff04a6d18469039f2.png)
[ログ管理]のプルダウンメニューから[カスタムログ]をクリックします。  
![Image from Gyazo](https://t.gyazo.com/teams/diverta/80b9cab6214d79eea9009f07a24c47b5.png)
ログの内容が表示されます。  
![Image from Gyazo](https://t.gyazo.com/teams/diverta/4ca6ec4b619fe133273157dcd0d2fe36.png)
## `@debug_print_var` を利用する
loggerのプラグインはデータが大きいと、ログに残せない場合があります。  
大きいデータを扱う場合や、機能の実装中にその場でデータの内容を確認する場合はこちらをご利用ください。  
`@debug_print_var` の出力結果はログに残りません。

### 記述例

```smarty
test:{$json|@debug_print_var}
```

### ログの確認方法
[カスタム処理編集](/ja/docs/management/function/#カスタム処理編集)の画面で[テストする]をクリックすると[出力]の項目に表示されます。  
![Image from Gyazo](https://t.gyazo.com/teams/diverta/b28aab012f22f2f018e040f088fadd95.png)

## `put_file` を利用してKurocoFilesに保存する
loggerプラグインは1KBを超えるデータの場合、`...Over 1kb data.`と表示され途中で切り詰められるため、全体を確認できません。  
大きいデータをファイルとして保存したい場合は`put_file`プラグインを利用してKurocoFilesに保存できます。

### 記述例

```smarty
{assign var=filename value="/files/ltd/debug_"|cat:$row.topics_id|cat:"_"|cat:$smarty.now|cat:".json"}
{put_file value=$row|@json_encode path=$filename}
```

上記の例では、`$row`変数の内容をJSON形式で`/files/ltd/`ディレクトリに保存します。  
ファイル名にはコンテンツIDとタイムスタンプを含めることで、複数回実行しても上書きされないようにしています。

### ログの確認方法
[ファイル管理] -> [KurocoFiles]をクリックし、`ltd`フォルダを開くと保存したファイルを確認できます。  
ファイルをダウンロードして内容を確認してください。

:::tip
`/files/ltd/`ディレクトリは管理者のみがアクセスできるため、デバッグ用のログファイルの保存先として適しています。  
公開しても問題ないファイルの場合は`/files/user/`ディレクトリも利用できます。
:::
