Microsoft.Extensions.Logging
のロギングメソッドにはいくつかのオーバーロードがありますが、いくつか分からないものがあったので確認してみました。
ログレベルは何でもいいんですが、LogError
を例とします。
メソッドの定義は以下です。
このうち、EventId
と Object[]
がどのように出力されるのか分からなかったため以下のコードで確認してみます。ILogger
の DI の部分などは省略します。
また、出力結果は Microsoft.Extensions.Logging
デフォルトのコンソール出力の結果です。
環境
- Visual Studio 2017
- ASP.NET Core 2.2
サンプル
メッセージのみ
logger.LogError("Message");
出力結果
fail: Default[0]
Message
可変引数
logger.LogError("User {hoge} logged in from {Address}", "名前", "住所");
出力結果
fail: Default[0]
User 名前 logged in from 住所
string.Format
と同じで、プレースホルダーが可変引数で指定した値に置き換わるだけのようです。
例外
try
{
var zero = 0;
var foo = 1 / zero;
}
catch (Exception ex)
{
logger.LogError(ex, "Message");
}
出力結果
fail: Default[0]
Message
System.DivideByZeroException: Attempted to divide by zero.
EventId
- 調査中