Yai*_*ron 7 .net c# logging serilog
我正在使用 Serlog 2.10,写入控制台(作为人类可读的文本),并使用 JsonFormatter 写入 RollingFile。
我希望在输出 JSON 中同时具有:“Message”和“MessageTemplate”节点,
但是,我只收到“Message”或“MessageTemplate”,但不是两者都收到。
下面是它的配置方式:
Log.Logger = new LoggerConfiguration()
.MinimumLevel.Information()
.WriteTo.Console()
.WriteTo.RollingFile(new JsonFormatter(), "logs/log-{Date}.log")
.CreateLogger();
Run Code Online (Sandbox Code Playgroud)
我按照此页面上的说明进行操作: https ://github.com/serilog/serilog-formatting-compact
我已经尝试了所有 3 个 Json 格式化程序:
我怎样才能将它们都包含在输出中?
任何援助将不胜感激
Serilog.Expressions可以做到这一点:
.WriteTo.RollingFile(
new ExpressionTemplate(
"{ {Timestamp: @t, Level: @l, MessageTemplate: @mt, Message: @m, Exception: @x, " +
"Properties: if IsDefined(@p[?]) then @p else undefined()} }" + Environment.NewLine,
"logs/log-{Date}.log")
Run Code Online (Sandbox Code Playgroud)