診断と観測#

Cross-layer

問題や実行時情報の種類ごとに、異なる報告機構を使います。 次の境界により、プログラミングエラー、ユーザーが対処できる通知、実行時メッセージ、構造化データ、コンパイラ結果を区別します。

目的

担当

開発者がコードを修正すべき誤用または不正な設定

例外

ユーザーがコードまたは設定で修正すべき問題の通知

warnings.warn

実行中の診断、進捗、数値異常

saealib.*ロガーによる標準のlogging

解析と可視化のための世代ごとの構造化された数値記録

Historyチャンネル

実行の観測と拡張ポイント

CallbackManager

Compilerの解析結果の一方向の引き渡し

Diagnostic / DiagnosticBag

実行時のロギング#

saealibはロギング出力ハンドラーを設定せず、NullHandlerだけを登録します。 したがって、ログメッセージを表示するかどうかはユーザーのlogging設定に依存します。 レベルを有効にしてハンドラーを追加する例は進捗のログ記録を参照してください。

verbose=Falseは進捗コールバックハンドラーの登録を防ぐだけです。 これはロギング出力の設定とは独立しており、ロギングハンドラーの登録解除や再設定は行いません。

代表的な実行時メッセージには、実行の開始と終了を示すINFO、解決済み設定と実行時の動作を示すDEBUG、スケジューラーの復旧や数値問題を示すWARNINGがあります。 ロギングメッセージの文言とフィールドは安定したAPIとして保証されません。利用側は個々のメッセージを解析せず、レベルとロガー名前空間を設定してください。

構造化された履歴とコールバック#

世代をまたいで収集し、解析や可視化への入力とする構造化された数値記録には、Historyチャンネルを使います。 これにより、データ利用側が人間可読なログメッセージに依存せずに済みます。

CallbackManagerは実行イベントの観測と拡張の境界です。 進捗ハンドラー、カスタムロギング、履歴収集を駆動できますが、例外やユーザー向け警告の代替ではありません。 イベントの登録と観測の詳細はCallbackManagerを参照してください。

Compilerの診断#

Compilerの規則は解析結果を一方向に渡します。規則はDiagnostic値を生成し、それらをDiagnosticBagに収集してコンパイル結果とともに返します。 呼び出し側は、それらの診断をどのように表示または処理するかを決められます。 Compilerの診断は実行時ログメッセージではないため、logging経由で送ってはいけません。 コンパイルと検証の境界はCompilerを参照してください。