UTC 格式的 Serilog 日期

问题描述 投票:0回答:2

我想配置 Serilog 以 UTC 格式记录日期,但当前使用服务器的时区。我们使用以下配置文件:

{
  "Serilog": {
    "Using": [
      "Serilog.Sinks.Console",
      "Serilog.Sinks.File"
    ],
    "LevelSwitches": { "$controlSwitch": "Verbose" },
    "MinimumLevel": { "ControlledBy": "$controlSwitch" },
    "WriteTo": [
      {
        "Name": "Logger",
        "Args": {
          "configureLogger": {
            "WriteTo": [
              {
                "Name": "File",
                "Args": {
                  "outputTemplate": "{Timestamp:yyyy-MM-dd:HH:mm:ss.ffff} - {Message,-20:l}{NewLine}{Exception}",
                  "path": "./logs/my.log"
                }
              }
            ]
          }
        }
      }
    ],
    "Enrich": [ "FromLogContext", "WithExceptionDetails", "ProcessId" ]
  }
}

我知道可以通过编写自定义丰富器来完成,但是有没有使用模板的简单解决方案?

datetime-format serilog serilog-sinks-file
2个回答
0
投票

您可以将时间转换为 UTC。但您没有任何格式选项。

"outputTemplate": "{Timestamp:u} - {Message,-20:l}{NewLine}{Exception}"

会给你

2024-04-16 22:47:09Z - Message

这是对我有用的 json。

{
    "Serilog": {
        "MinimumLevel": "Verbose",
        "WriteTo": [
            {
                "Name": "Console",
                "Args": {
                    "restrictedToMinimumLevel": "Debug",
                    "outputTemplate": "{Timestamp:u} - {Message,-20:l}{NewLine}{Exception}"
                }
            }
        ],
        "Enrich": [ "FromLogContext" ]
    }
}

-1
投票

尝试

{Timestamp:G}

所以,在你的代码中:

"outputTemplate": "{Timestamp:G} - {Message,-20:l}{NewLine}{Exception}",
© www.soinside.com 2019 - 2024. All rights reserved.