Appearance
外部連携ログ ― ログがなかったら障害対応は?
この章のキーワード
| 用語 | 意味 | なぜ重要か |
|---|---|---|
| ログチャネル | ドメイン別にログ出力先を分ける仕組み | 障害調査を高速化 |
| 構造化ログ | キーと値の組み合わせで記録するログ形式 | 機械的な検索・集計が容易 |
| 可観測性(Observability) | システムの内部状態を外から把握できる度合い | ログ・メトリクス・トレースの3本柱 |
Phase 1: 観察
exemplar ドメイン別のログチャネル設計です。
LIBOT のログ設定:
php
// config/logging.php(一部抜粋)
// Label: exemplar
'channels' => [
'webhook' => ['driver' => 'daily', 'path' => storage_path('logs/webhook/webhook.log')],
'webhook_error' => ['driver' => 'daily', 'path' => storage_path('logs/webhook/error.log')],
'partner' => ['driver' => 'daily', 'path' => storage_path('logs/partner/partner.log')],
'partner_error' => ['driver' => 'daily', 'path' => storage_path('logs/partner/error.log')],
'line' => ['driver' => 'daily', 'path' => storage_path('logs/line.log')],
'billing' => ['driver' => 'daily', 'path' => storage_path('logs/billing/billing.log')],
'billing_error' => ['driver' => 'daily', 'path' => storage_path('logs/billing/error.log')],
'beacon' => ['driver' => 'daily', 'path' => storage_path('logs/beacon/beacon.log')],
// ... 11チャネル以上
],使い方:
php
Log::channel('partner')->info('External event accepted', ['operation_id' => $id]);
Log::channel('partner_error')->error('Signature verification failed', ['key_id' => $keyId]);Phase 2: 判断
AI禁止ゾーン
- 全てのログを 1 つのファイル に出力していたら、障害調査はどうなりますか?
- 正常系ログ(
partner)とエラーログ(partner_error)を 分けるメリット は何ですか? - ログの 保持期間 はどう決めるべきですか?
AIに聞く前に、自分の頭で考えてみましょう。
テキストを入力すると有効になります