logs は、監査ログのエントリを表示します。監査ログには、CC Safety Net が許可またはブロックしたコマンドごとに 1 レコードが記録されています。フラグなしで実行すると、すべてのプロジェクトを対象に、過去 30 日間の最新の拒否 20 件を出力します。許可の判定も含めるには --all を指定します。
logs のフィルターとオプション
--suspect で誤検知らしい拒否を見つける
--suspect は、見直す価値のある拒否だけを表示します。次のどちらかに当てはまる拒否が対象です。
failureStageを持つ。解析に失敗したため、CC Safety Net が危険だと証明しないままコマンドをブロックしたことを意味します。- 同じセッション内で、同じコマンドが 2 回以上拒否された。
logs のフラグの競合とエラー
--id と組み合わせられるのは --all と --json だけです。--prune-legacy と組み合わせられるのは --json と --dry-run だけで、--dry-run には --prune-legacy が必要です。これ以外の組み合わせや不明なオプションを指定すると、問題を示すエラーを出力して 1 で終了します。
監査ログファイルを読み取れない場合や、不正なレコードがある場合、logs は標準エラー出力に警告を 1 つ出力します。標準出力のエントリと終了コードは変わりません。
logs の出力
--json を付けない場合、logs はエントリごとに 1 行を出力します。各行には、ID、タイムスタンプ、判定、エージェント、ルール ID、50 文字に切り詰めたコマンドが並びます。完全なコマンドと異なるセグメントには ↳ が付きます。
--id を付けた場合は、代わりにレコードのすべてのフィールドをラベル付きのブロックで出力します。
logs の JSON 出力
レガシーのログファイルを削除する
logs --prune-legacy は、監査ルートの直下にある *.jsonl ファイルを、経過時間や内容に関係なくすべて削除します。これらはレガシー配置のファイルです。
--prune-legacy は、サブディレクトリにあるプロジェクトごとの監査ログには触れません。すべての削除に成功すると 0、削除できなかったファイルが 1 つでもあると 1 で終了します。
レガシー配置と現在の配置の違いは、監査ログを参照してください。
--dry-run で削除対象を確認する
--dry-run を付けると、何も削除せずに 0 で終了します。出力は Would remove <n> legacy audit log files (<size>). または No legacy audit log files found. です。--json を付けると、logs の JSON 出力に示したオブジェクトを出力します。