銀の光と碧い空

クラウドなインフラとC#なアプリ開発の狭間にいるエンジニアの日々

OpenTelemetry .NETを理解する (3) デバッグログを出す

OpenTelemetry .NET で計測していると、正しく動作しているか確認したいときがあります。OpenTelemetry .NETにはこのようなときのために、自己診断機能が用意されています。

opentelemetry-dotnet/README.md at main · open-telemetry/opentelemetry-dotnet · GitHub

このドキュメントにあるとおり、計装コード側を変更する必要はなく、カレントディレクトリに以下の形式のOTEL_DIAGNOSTICS.jsonという名前のファイルを配置するだけです。

{
    "LogDirectory": ".",
    "FileSize": 1024,
    "LogLevel": "Error"
}

設定パラメータもドキュメントに説明されています。

  • LogDirectory にログファイルを出力するディレクトリを指定します。ここではカレントディレクトリに出力します。
  • FileSize にログファイルのサイズをKiB単位で指定します。1~128MiBの間で指定でき、ここでは1MiBを指定しています。
  • LogLevel に指定したレベル以上のログが記録されます。EventLevel列挙型の値を指定できます。

出力されるログファイルは{実行ファイルの名前}.{プロセスID}.logというフォーマットになります。また、FileSizeで指定したサイズになるよう、ログ出力が少ないときは末尾がNULで埋められています。

f:id:tanaka733:20220313165936p:plain

f:id:tanaka733:20220313170043p:plain