一键导入
logging-guidelines
ログを追加・修正する際のガイドライン。ログレベルの選択基準、ループ内ログの制御、エラー蓄積パターン、機密情報の扱いを扱う。言語/FW非依存の原則。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
ログを追加・修正する際のガイドライン。ログレベルの選択基準、ループ内ログの制御、エラー蓄積パターン、機密情報の扱いを扱う。言語/FW非依存の原則。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
修正を複数ブランチに適用する際のブランチ戦略。featureブランチへの先行commitとcherry-pickによる短命branchへの適用手順。環境別branch(qa/staging/epsilon等)への修正適用時に参照する。
DeepWiki (Devin MCP) のドキュメント内容を対象リポジトリの Markdown ファイルとして転載する。セクション構成維持・番号付きファイル分割・GFM 準拠補正・日本語翻訳 (オプション) まで自動処理。
PRのレビューコメントを確認し、優先度に応じてコード修正を実行する。サブエージェント (general-purpose) 起動にも対応。--defer-nit / --severity-min で対応範囲を制御。
実装プランファイル作成・更新の手順。実装開始時およびPR作成時にissues/配下の実装プランの有無を確認し、なければ会話履歴・git log・git diffから生成する。複数ファイル変更・新規機能追加・DBマイグレーション伴う変更が対象。
調査レポート作成のルール。否定的結論のエビデンス要件、残課題の記載フォーマット、ハルシネーション防止のための裏取り原則を扱う。DB調査に限らずコードベース調査・仕様調査一般に適用。
Anthropic 公式 Skill (docx/pptx/xlsx/pdf 等) が必要な作業で、未インストール時に自動でダウンロードして使用する。
| name | logging-guidelines |
| description | ログを追加・修正する際のガイドライン。ログレベルの選択基準、ループ内ログの制御、エラー蓄積パターン、機密情報の扱いを扱う。言語/FW非依存の原則。 |
| when_to_use | コードにログを追加・修正・整理するとき。Triggers: 'ログ追加', 'log追加', 'logger', 'logging', 'ログレベル', 'log level', 'デバッグログ', 'エラーログ', 'logger.info', 'logger.error', 'print文をログに' |
コードにログを追加・修正する際は、以下のルールに従うこと。言語/フレームワークに依存しない原則として記述している。
| レベル | 用途 | 本番出力(推奨) |
|---|---|---|
error | 例外発生、処理失敗 | o |
warning | データ不備でスキップ、処理継続可能な異常 | o |
info | バッチ開始/完了、重要なビジネスイベント | 環境による(本番off推奨) |
debug | 開発向けデバッグ情報 | x |
推奨: 本番は LOG_LEVEL=warning 以上。info/debug は開発・ステージングのみで出力する。
以下は用途が曖昧または過剰なため、明示的な運用規則がない限り使わない:
notice — error/warning/info と区別が曖昧critical, alert, emergency — 通常のアプリには過剰。運用規則として「PagerDuty起動基準」などが定義されていない限り使わないループ内で1件ずつログを出力すると、大量データ処理時にログが爆発する。ループ後にサマリーとしてまとめて出力すること。
# NG: ループ内で1件ずつ出力
for item in items:
log.info("処理完了", id=item.id)
# OK: ループ後にまとめて出力
processed_count = 0
for item in items:
# 処理...
processed_count += 1
log.info("バッチ処理完了", processed_count=processed_count)
ループ内で例外が発生し処理を継続する場合は、エラー情報を蓄積してループ後にまとめて報告する。先頭N件のみ含めることで、ログサイズ爆発を防ぐ。
errors = []
for item in items:
try:
process(item)
except Exception as e:
errors.append({"id": item.id, "error": str(e)})
if errors:
log.error(
"処理で一部失敗",
total_count=len(items),
failed_count=len(errors),
sample_errors=errors[:10], # 先頭10件のみ
)
ループ内での debug 出力は、他に代替手段がなく調査に不可欠な場合のみ許容。デフォルトは「ループ外で件数サマリ」を基本とする。
Exception、PHP Throwable、Java Throwable 等)でトップレベル catch するLog::, Python は logging.getLogger(__name__))ループ件数カウントなどは、ログではなくメトリクスに寄せるのが望ましい場合が多い。
| アンチパターン | 問題 |
|---|---|
log.info("") / 空メッセージ | 意図が伝わらない |
log.error(e) のみ | スタックトレース/contextが欠ける |
| 機密情報をそのままログに入れる | 情報漏洩リスク |
| ループ内で毎回 info 出力 | ログ爆発 |
| try/except で握りつぶし、何も報告しない | 障害の気配を消す |
| 複数行の ASCII ART をログに含める | grep/集計が困難 |
/ndf:problem-solving — ログから根本原因を特定する手順/ndf:investigation-rules — ログをエビデンスとして扱う際の注意点