診断と観測#
問題や実行時情報の種類ごとに、異なる報告機構を使います。 次の境界により、プログラミングエラー、ユーザーが対処できる通知、実行時メッセージ、構造化データ、コンパイラ結果を区別します。
目的 |
担当 |
|---|---|
開発者がコードを修正すべき誤用または不正な設定 |
例外 |
ユーザーがコードまたは設定で修正すべき問題の通知 |
|
実行中の診断、進捗、数値異常 |
|
解析と可視化のための世代ごとの構造化された数値記録 |
Historyチャンネル |
実行の観測と拡張ポイント |
|
Compilerの解析結果の一方向の引き渡し |
|
実行時のロギング#
saealibはロギング出力ハンドラーを設定せず、NullHandlerだけを登録します。
したがって、ログメッセージを表示するかどうかはユーザーのlogging設定に依存します。
レベルを有効にしてハンドラーを追加する例は進捗のログ記録を参照してください。
verbose=Falseは進捗コールバックハンドラーの登録を防ぐだけです。
これはロギング出力の設定とは独立しており、ロギングハンドラーの登録解除や再設定は行いません。
代表的な実行時メッセージには、実行の開始と終了を示すINFO、解決済み設定と実行時の動作を示すDEBUG、スケジューラーの復旧や数値問題を示すWARNINGがあります。 ロギングメッセージの文言とフィールドは安定したAPIとして保証されません。利用側は個々のメッセージを解析せず、レベルとロガー名前空間を設定してください。
構造化された履歴とコールバック#
世代をまたいで収集し、解析や可視化への入力とする構造化された数値記録には、Historyチャンネルを使います。 これにより、データ利用側が人間可読なログメッセージに依存せずに済みます。
CallbackManagerは実行イベントの観測と拡張の境界です。
進捗ハンドラー、カスタムロギング、履歴収集を駆動できますが、例外やユーザー向け警告の代替ではありません。
イベントの登録と観測の詳細はCallbackManagerを参照してください。
Compilerの診断#
Compilerの規則は解析結果を一方向に渡します。規則はDiagnostic値を生成し、それらをDiagnosticBagに収集してコンパイル結果とともに返します。
呼び出し側は、それらの診断をどのように表示または処理するかを決められます。
Compilerの診断は実行時ログメッセージではないため、logging経由で送ってはいけません。
コンパイルと検証の境界はCompilerを参照してください。