プログラムを中心とした個人的なメモ用のブログです。 タイトルは迷走中。
内容の保証はできませんのであしからずご了承ください。

2019/05/17

ASP.NET Core のロギングメソッドの引数

event_note2019/05/17 1:55

Microsoft.Extensions.Logging のロギングメソッドにはいくつかのオーバーロードがありますが、いくつか分からないものがあったので確認してみました。

ログレベルは何でもいいんですが、LogError を例とします。
メソッドの定義は以下です。

このうち、EventIdObject[] がどのように出力されるのか分からなかったため以下のコードで確認してみます。
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

  • 調査中