application-logging について
適切なレベル、コンテキスト、集中集約を備えた構造化アプリケーションログの実装を支援するスキルです。デバッグ、監視、監査、コンプライアンス向けのガイドと例を提供します。
主な機能
- 01構造化 JSON ログ
- 02ログレベル、タイムスタンプ、エラーコンテキスト
- 03トレース用リクエスト ID
- 04ログローテーションと集中集約
- 05機密データのフィルタリング
活用シーン
- 01アプリケーションエラーのデバッグ
- 02監査証跡の作成
- 03パフォーマンス分析
- 04監視やコンプライアンス向けのログ集約
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ aj-geddes/ useful-ai-prompts --skill application-loggingインストール後、Claude Code で/application-loggingを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/elk-stack-setup.mdexpress-http-request-logging.mdflask-integration.mdlogstash-configuration.mdnodejs-structured-logging-with-winston.mdpython-structured-logging.mdscripts/validate-api.shtemplates/api-scaffold.yaml詳細
アプリケーションのロギング
目次
概要
適切なログレベル、コンテキスト、一元的な集約を備えた包括的な構造化ロギングを実装し、効果的なデバッグと監視を実現します。
使用する場面
- アプリケーションのデバッグ
- 監査証跡の作成
- パフォーマンス分析
- コンプライアンス要件
- ログの一元的な集約
クイックスタート
最小限の実行可能な例:
// logger.js
const winston = require("winston");
const logFormat = winston.format.combine(
winston.format.timestamp({ format: "YYYY-MM-DD HH:mm:ss" }),
winston.format.errors({ stack: true }),
winston.format.json(),
);
const logger = winston.createLogger({
level: process.env.LOG_LEVEL || "info",
format: logFormat,
defaultMeta: {
service: "api-service",
environment: process.env.NODE_ENV || "development",
},
transports: [
new winston.transports.Console({
format: winston.format.combine(
winston.format.colorize(),
winston.format.simple(),
),
}),
new winston.transports.File({
filename: "logs/error.log",
// ... (see reference guides for full implementation)
リファレンスガイド
詳細な実装については、references/ ディレクトリを参照してください:
| ガイド | 内容 |
|---|---|
| Node.js Structured Logging with Winston | Winston を使用した Node.js の構造化ロギング |
| Express HTTP Request Logging | Express の HTTP リクエストロギング |
| Python Structured Logging | Python の構造化ロギング |
| Flask Integration | Flask との統合 |
| ELK Stack Setup | ELK Stack のセットアップ |
| Logstash Configuration | Logstash の設定 |
ベストプラクティス
✅ 推奨事項
- 構造化 JSON ロギングを使用する
- トレース用にリクエスト ID を含める
- 適切なログレベルで記録する
- エラーログにコンテキストを追加する
- ログローテーションを実装する
- タイムスタンプを一貫して使用する
- ログを一元的に集約する
- 機密データをフィルタリングする
❌ 避けるべきこと
- パスワードやシークレットを記録する
- すべての操作を INFO レベルで記録する
- 構造化されていないメッセージを使用する
- ログストレージの上限を無視する
- コンテキスト情報を省略する
- 本番環境で stdout にログを出力する
- 無制限に増大するログファイルを作成する
コメント
Markdown 対応