Open3

Microsoft.Extensions.Loggingの設定をappsettings.jsonで行う

tenten0213tenten0213
{
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft.AspNetCore": "Warning"
    }
  }
}

コンソールログのフォーマットを指定するにはこんな感じ。
TimestampFormatこの "u" でいいかなとおもったんだけど、 ログ出力が 2024-12-09 09:51:44Zinfo: .... て感じで日時の後にスペースもあかずログレベルが出力されてしまったので、明示的にスペースあけるようなフォーマットを指定している。

{
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft.AspNetCore": "Warning"
    },
    "Console": {
      "LogLevel": {
        "Default": "Information",
        "Microsoft.AspNetCore": "Warning"
      },
      "FormatterName": "simple",
      "FormatterOptions": {
        "ColorBehavior": "Enabled",
        "IncludeScopes": false,
        "TimestampFormat": "yyyy'-'MM'-'dd HH':'mm':'ss'Z '",
        "UseUtcTimestamp": true
      }
    }
  }
}

https://learn.microsoft.com/ja-jp/dotnet/standard/base-types/custom-date-and-time-format-strings
https://learn.microsoft.com/ja-jp/dotnet/core/extensions/console-log-formatter

tenten0213tenten0213

同じようなことをコードでやる場合は("u"でやっちゃってるけど)こんな感じ

    builder.Logging.AddSimpleConsole(fun i -> i.ColorBehavior <- LoggerColorBehavior.Enabled; i.TimestampFormat <- "u"; i.UseUtcTimestamp <- true) |> ignore
tenten0213tenten0213

ログを改行させたくない場合は SingleLine = true 、 json形式で出力したい場合は "FormatterName": "json" にすればOK