FAQ:サーバスクリプトのエラーログを出力したい
## 回答
複数の方法があるため、エラーログの取得目的に応じて使い分けてください。
---
## 概要
[サーバスクリプト](/ja/manual/table-management-server-script)でエラーが発生すると、コマンドボタンエリアの上にエラーメッセージが表示され、エラーの内容は[システムログ](/ja/manual/syslog)に記録されます。しかし、[システムログ](/ja/manual/syslog)は特権ユーザでないと閲覧することができません。
プリザンターは特権ユーザでないユーザがエラーの内容を確認する方法を複数用意しています。エラーログの取得目的に応じて使い分けてください。
### 1. 予見可能なエラー(例外)をログ出力する
try-catchとログ出力メソッドを使用します。この場合、以下で説明する「エラーの詳細を取得する」は無視されます。
#### ログ出力メソッド
ログの出力先別に、以下のログ出力メソッドを使い分けてください。
|出力先|メソッド|
|:--|:--|
|以下の一方または両方<br><br>・開発者ツールのコンソール<br>・システムログ|[logs.LogException](/ja/manual/server-script-logs-log-exception)|
|・開発者ツールのコンソール|[context.Log](/ja/manual/server-script-context-log)|
#### サンプルコード
```js
try {
context.Log('処理開始');
const myItems = items.Get('aaaa'); // 引数に文字列を渡す
const myItem = myItems[0]; // myItemsがnullなのに配列要素を指定→エラー
context.Log(myItem.Title);
context.Log('処理終了');
} catch(e) {
context.Log('エラー発生');
// エラーログ出力
context.Log(e.stack);
}
```
#### TryCatch
[サーバスクリプト](/ja/manual/table-management-server-script)画面の[TryCatch](/ja/manual/server-script-try-catch)を有効化すると、記述したコードをtryブロックに設定し、catchブロックではエラー内容を[logs.LogException](/ja/manual/server-script-logs-log-exception)にて出力する処理を設定します。これによりエラー内容をブラウザの管理者ツール上のコンソールに表示するとともにシステムログに記録します。
#### ログ出力サンプル
出力されたログはブラウザの開発者ツールのConsoleに、以下のように出力されます。
開発者ツールは、Chromeなど代表的なブラウザでF12キーを押下したときに表示される画面です。

### 2. 予見不可能なエラーをログ出力する
[テーブルの管理](/ja/manual/table-management)画面の[サーバスクリプト](/ja/manual/table-management-server-script)タブにある「エラーの詳細を取得する」を有効化してください。
エラー発生時に「開発者ツール」の「コンソール」画面から[サーバスクリプトのデバッグ](/ja/manual/server-script-debug)に役立つ情報を得られます。本機能は、無効化されていない全てのサーバスクリプトが対象となります。
#### サンプルコード
以下のサンプルコードは上記サンプルコードの3行目~5行目と同じです。
```js
const myItems = items.Get('aaaa'); // 引数に文字列を渡す
const myItem = myItems[0]; // myItemsがnullなのに配列要素を指定→エラー
context.Log(myItem.Title);
```
条件に「作成後」を設定し、レコードを新規作成すると、以下のように表示されます。

サーバスクリプトの[条件](/ja/manual/server-script-conditions)として、「サイト設定の読み込み時」「ビュー処理時」「レコード読み込み時」などを指定した場合は、エラーページ(/errors/serverscripterror)へのリダイレクトが発生します。このような場合はコンソールにエラーの詳細は出力されません。
「エラーの詳細を取得する」を有効化した場合、try-catch文で補足した例外は出力されません。
## 対応バージョン
|対応バージョン|内容|
|:--|:--|
|1.5.1.0 以降|「エラーの詳細を取得する」の実装に合わせて更新|
## 関連情報
<div id="ManualList"><ul><li><a href="/ja/manual/table-management">テーブルの管理</a><span>2025/12/09 up</span></li></ul></article>
<ul><li><a href="/ja/manual/table-management-server-script">テーブルの管理:サーバスクリプト</a><span>2026/02/10 up</span></li></ul></article>
<ul><li><a href="/ja/manual/syslog">システムログ管理機能</a><span>2024/06/21 up</span></li></ul></article>
<ul><li><a href="/ja/manual/server-script">開発者向け機能:サーバスクリプト</a><span>2025/11/27 up</span></li>
<li><a href="/ja/manual/server-script-debug">開発者向け機能:サーバスクリプト:デバッグ</a><span>2025/06/12 up</span></li>
<li><a href="/ja/manual/server-script-try-catch">開発者向け機能:サーバスクリプト:TryCatch</a><span>2025/01/14 up</span></li>
<li><a href="/ja/manual/server-script-conditions">開発者向け機能:サーバスクリプト:条件</a><span>2026/02/09 up</span></li>
<li><a href="/ja/manual/server-script-context-log">開発者向け機能:サーバスクリプト:context.Log</a><span>2023/06/21 up</span></li>
<li><a href="/ja/manual/server-script-logs-log-exception">開発者向け機能:サーバスクリプト:logs.LogException</a><span>2025/01/14 up</span></li></ul></article>
<ul><li><a href="/ja/manual/faq-condition-mode-range">FAQ:プロセスなどの条件タブで数値や日付の条件を範囲指定したい</a><span>2024/05/29 up</span></li></ul></article></div><input id="SearchTextHidden" type="hidden" value="" />


