これは、組織が相互に依存している可能性のある多くのコンポーネントを実行している可能性があるコンポーネントベースのアーキテクチャから来るものです。障害の伝播中、ログレベルは、影響を受けるコンポーネントと根本原因の両方を特定するのに役立ちます。
エラー -このコンポーネントに障害があり、原因は内部にあると考えられています(内部の未処理の例外、カプセル化された依存関係の失敗...たとえば、データベース、RESTの例では、依存関係から4xxエラーを受け取ったでしょう)。私(このコンポーネントのメンテナ)をベッドから出してください。
警告 -このコンポーネントには、依存コンポーネントによって引き起こされると考えられる障害がありました(RESTの例は、依存関係からの5xxステータスです)。THATコンポーネントのメンテナをベッドから解放します。
INFO-オペレーターに連絡したいその他すべて。ハッピーパスをログに記録することにした場合は、重要な操作(たとえば、着信HTTP要求)ごとに1つのログメッセージに制限することをお勧めします。
すべてのログメッセージについて、必ず有用なコンテキストをログに記録してください(そして、「エラーコード」の連なりではなく、メッセージを人間が読める/有用なものにすることを優先します)
- DEBUG(およびそれ以下)-まったく使用しないでください(実際には使用しないでください)。開発では、コードをログステートメントで汚染するのではなく、TDDとデバッグ(必要な場合)を組み合わせて使用することをお勧めします。本番環境では、上記のINFOロギングと他のメトリックを組み合わせれば十分です。
上記のログレベルを視覚化する良い方法は、各コンポーネントの一連の監視画面を想像することです。すべて正常に動作している場合は緑色で、コンポーネントが警告をログに記録している場合はオレンジ(オレンジ色)になり、エラーを記録している場合は赤色になります。
インシデントが発生した場合は、1つの(根本原因)コンポーネントが赤になり、影響を受けるすべてのコンポーネントがオレンジ/オレンジになります。