sentry-setup-logging について
JavaScript、Python、Ruby で Sentry の構造化ログを設定する開発者向けスキルです。SDK の有効化、ロガー連携、フィルタリング、確認方法を扱います。
主な機能
- 01Sentry の構造化ログを有効化
- 02コンソールや外部ロガーとの連携
- 03ログフィルターの設定
- 04ログ捕捉結果の確認
活用シーン
- 01アプリケーションで Sentry ログを有効化
- 02Pino、Winston、Loguru を Sentry に接続
- 03ログの欠落や過剰な出力を調査
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ getsentry/ sentry-agent-skills --skill sentry-setup-loggingインストール後、Claude Code で/sentry-setup-loggingを入力して読み込まれたか確認します。
詳細
Sentry ログ記録のセットアップ
Sentry の構造化ログ機能を設定します。
このスキルを呼び出すタイミング
- ユーザーが「Sentry のログ記録をセットアップして」または「Sentry でログをキャプチャして」と依頼した場合
- ユーザーがロギングライブラリ(Pino、Winston、Loguru)を Sentry と連携させたい場合
- ユーザーが
Sentry.loggerまたはsentry_sdk.loggerについて質問した場合
重要: 以下の SDK バージョン、API 名、コード例は参考例です。API や最小バージョンが変更されている可能性があるため、実装前に必ず docs.sentry.io で確認してください。
クイックリファレンス
| プラットフォーム | SDK の最小バージョン | 有効化フラグ | ロガー API |
|---|---|---|---|
| JavaScript | 9.41.0+ | enableLogs: true | Sentry.logger.* |
| Python | 2.35.0+ | enable_logs=True | sentry_sdk.logger.* |
| Ruby | 5.24.0+ | config.enable_logs = true | Sentry.logger.* |
JavaScript のセットアップ
1. SDK のバージョンを確認する
grep -E '"@sentry/(nextjs|react|node|browser)"' package.json
2. Sentry.init() で有効にする
Sentry.init({
dsn: "YOUR_DSN",
enableLogs: true,
});
3. コンソールのキャプチャ(任意)
integrations: [
Sentry.consoleLoggingIntegration({ levels: ["warn", "error"] }),
],
4. 構造化ログを使用する
Sentry.logger.info("User logged in", { userId: "123" });
Sentry.logger.error("Payment failed", { orderId: "456", amount: 99.99 });
// Template literals (creates searchable attributes)
Sentry.logger.info(Sentry.logger.fmt`User ${userId} purchased ${productName}`);
サードパーティとの連携
| ライブラリ | 連携機能 | SDK の最小バージョン |
|---|---|---|
| Consola | Sentry.createConsolaReporter() | 10.12.0+ |
| コンソールのキャプチャ | Sentry.consoleLoggingIntegration() | 10.13.0+ |
Python のセットアップ
1. SDK のバージョンを確認する
pip show sentry-sdk | grep Version
2. init() で有効にする
sentry_sdk.init(
dsn="YOUR_DSN",
enable_logs=True,
)
3. 標準ライブラリのログをキャプチャする(任意)
from sentry_sdk.integrations.logging import LoggingIntegration
integrations=[LoggingIntegration(sentry_logs_level=logging.INFO)]
4. 構造化ログを使用する
from sentry_sdk import logger as sentry_logger
sentry_logger.info("User logged in: {user_id}", user_id="123")
sentry_logger.error("Payment failed", order_id="456", amount=99.99)
Loguru との連携
from sentry_sdk.integrations.loguru import LoguruIntegration
integrations=[LoguruIntegration(sentry_logs_level=LoggingLevels.INFO.value)]
Ruby のセットアップ
1. SDK のバージョンを確認する
bundle show sentry-ruby
2. init で有効にする
Sentry.init do |config|
config.dsn = "YOUR_DSN"
config.enable_logs = true
config.enabled_patches << :logger # Optional: capture stdlib Logger
end
3. 構造化ログを使用する
Sentry.logger.info("User logged in")
Sentry.logger.error("Payment failed. Order: %{order_id}", order_id: "456")
ログのフィルタリング
JavaScript
beforeSendLog: (log) => log.level === "info" ? null : log,
Python
def before_send_log(log, hint):
return None if log["severity_text"] == "info" else log
検証
ログを有効にしたら、テストログを出力し、Sentry の Logs ダッシュボード(Explore > Logs)を確認します。
Sentry.logger.info("Sentry logging test");
トラブルシューティング
| 問題 | 解決策 |
|---|---|
| ログが表示されない | SDK のバージョンを確認し、enableLogs/enable_logs が設定されていることを確認してください |
| ログが多すぎる | beforeSendLog でフィルタリングするか、キャプチャするログレベルを減らしてください |
| コンソールがキャプチャされない | consoleLoggingIntegration を integrations 配列に追加してください |
コメント
Markdown 対応