serverpod-logging について
リクエスト中のログ記録と保存先・出力の設定を扱う Serverpod 向けスキルです。serverpod MCP サーバーや Serverpod Insights でログを確認できます。
主な機能
- 01session.log() によるリクエストログ記録
- 02データベースとコンソールへの出力
- 03保持期間とクリーンアップの設定
- 04Serverpod Insights でのログ確認
活用シーン
- 01リクエスト中の警告や例外の記録
- 02Serverpod Insights で失敗・低速な呼び出しを確認
MCP 対応
ログは serverpod MCP サーバーを通じて読み取れます。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ serverpod/ serverpod --skill serverpod-loggingインストール後、Claude Code で/serverpod-loggingを入力して読み込まれたか確認します。
詳細
Serverpod のログ
リクエスト中に session.log() を使用します。セッションが終了すると、ログがフラッシュされます。ログはデータベースに保存されるか、コンソールに出力されます。
使用方法
session.log('Operation completed');
session.log('Something went wrong',
level: LogLevel.warning,
exception: e,
stackTrace: stackTrace);
捕捉されなかったエンドポイントの例外は、serverpod_session_log にセッションの失敗として記録されます。
出力先
- ログは
serverpodMCP サーバーから確認できます。 - データベース: テーブル
serverpod_log、serverpod_query_log、serverpod_session_log(永続化が有効な場合) - コンソール: コンソールログが有効な場合(形式:
textまたはjson)
デフォルトでは、データベースが設定されている場合は永続ログが有効になり、PostgreSQL でのみ適用されます(SQLite には永続セッションログがありません)。データベースがない場合と development 実行モードでは、コンソールログが有効になります。コンソールの形式は、development では text、その他の実行モードでは json です。
設定
設定 YAML の sessionLogs: の下に記述します。
| 設定 | デフォルト |
|---|---|
| persistentEnabled | true(DB がある場合) |
| consoleEnabled | true(DB がない場合、または development の場合) |
| consoleLogFormat | text(development)、json(その他のモード) |
| cleanupInterval | 24h |
| retentionPeriod | 90d |
| retentionCount | 100000 |
各設定には環境変数 SERVERPOD_SESSION_* もあります。環境変数は serverpod-configuration/references/environment-variables.md に記載されています。
ログテーブルが際限なく増加しないよう、保持期間を設定してください。機密データの記録は避けてください。
Serverpod Insights
ログの表示、検索、フィルタリングや、失敗した呼び出し、遅い呼び出しの調査に使用できるコンパニオンアプリです。Serverpod Cloud を使用すると、自動的に利用できます。