Serilog Timestamp @t 不是 UTC 时间
Serilog Timestamp @t is not in UTC time
我正在用 C# 编码,我有一个用 Serilog 生成的日志文件,写入文件并使用 CompactJsonFormatter 在 Json 中格式化。
问题是时间没有设置为正确的时区,它是 UTC+0。
有没有一种方法可以为时间戳设置正确的时区? P.S。 TimeWrap 已弃用
日志文件中生成的示例行:
{"@t":"2020-02-19T13:34:55.6398202Z","@mt":"Stringa random {stringToLog}","stringToLog":"this"}
这是我用来生成日志的方法:
目前无法使用现有 CompactJsonFormatter
更改时间戳转换为字符串的方式... hard-coded 始终获取 UtcDateTime
然后转换它到字符串。
如果你想改变这个,你必须通过创建你自己的 class 实现你自己的 CompactJsonFormatter
版本来实现 ITextFormatter
并告诉 Serilog 使用它相反。
您可以将 CompactJsonFormatter
的代码复制到您的代码库中并根据您的需要进行修改。
那么您只需切换到您的自定义格式器,而不是使用默认格式器:
var logger = new LoggerConfiguration()
.WriteTo.File(new YourCompactJsonFormatter(), "App.log")
.CreateLogger();
Serilog.Formatting.Compact 项目非常“固执己见”,无法真正配置。
如果您想修改格式化程序的工作方式,只需将此文件复制到您的项目中并根据需要进行修改。
对于时区,您可以修改此文件中的以下行
output.Write(logEvent.Timestamp.UtcDateTime.ToString("O"));
到
output.Write(logEvent.Timestamp.LocalDateTime.ToString("O"));
然后您只需切换到您的自定义格式器,而不是使用默认格式器
var logger = new LoggerConfiguration()
.WriteTo.File(new YourCompactJsonFormatter(), "App.log")
.CreateLogger();
我正在用 C# 编码,我有一个用 Serilog 生成的日志文件,写入文件并使用 CompactJsonFormatter 在 Json 中格式化。 问题是时间没有设置为正确的时区,它是 UTC+0。 有没有一种方法可以为时间戳设置正确的时区? P.S。 TimeWrap 已弃用
日志文件中生成的示例行:
{"@t":"2020-02-19T13:34:55.6398202Z","@mt":"Stringa random {stringToLog}","stringToLog":"this"}
这是我用来生成日志的方法:
目前无法使用现有 CompactJsonFormatter
更改时间戳转换为字符串的方式... hard-coded 始终获取 UtcDateTime
然后转换它到字符串。
如果你想改变这个,你必须通过创建你自己的 class 实现你自己的 CompactJsonFormatter
版本来实现 ITextFormatter
并告诉 Serilog 使用它相反。
您可以将 CompactJsonFormatter
的代码复制到您的代码库中并根据您的需要进行修改。
那么您只需切换到您的自定义格式器,而不是使用默认格式器:
var logger = new LoggerConfiguration()
.WriteTo.File(new YourCompactJsonFormatter(), "App.log")
.CreateLogger();
Serilog.Formatting.Compact 项目非常“固执己见”,无法真正配置。
如果您想修改格式化程序的工作方式,只需将此文件复制到您的项目中并根据需要进行修改。
对于时区,您可以修改此文件中的以下行
output.Write(logEvent.Timestamp.UtcDateTime.ToString("O"));
到
output.Write(logEvent.Timestamp.LocalDateTime.ToString("O"));
然后您只需切换到您的自定义格式器,而不是使用默认格式器
var logger = new LoggerConfiguration()
.WriteTo.File(new YourCompactJsonFormatter(), "App.log")
.CreateLogger();