我有一个ASP.Net Core 2 Web应用程序,我试图将SeriLog配置为以JSON格式输出,通过appsettings.json文件配置。我无法使用标准的Serilog.Formatting.Json.JsonFormatter或紧凑的Serilog.Formatting.Compact.CompactJsonFormatter。
我在那里看到了一个类似的问题here,但似乎没有使用appsettings.json的确定答案,并且该线程已经安静了一年多(我不知道)有足够的声誉评论推动进一步的回应)。
我使用以下SeriLog软件包:
我的appsettings.json文件的SeriLog部分显示为:
"Serilog": {
"Using": ["Serilog.Sinks.RollingFile"],
"MinimumLevel": {
"Default": "Verbose",
"Override": {
"Microsoft": "Warning",
"System": "Warning"
}
},
"WriteTo": [
{
"Name": "RollingFile",
"Args": {
"pathFormat": "C:\\Logs\\MLSBPortal-{Date}.txt",
"formatter": "Serilog.Formatting.Compact.CompactJsonFormatter, Serilog.Formatting.Compact",
"restrictedToMinimumLevel": "Debug",
"retainedFileCountLimit": "10",
"outputTemplate": "{Timestamp:yyyy-MM-dd HH:mm:ss.fff zzz} [{Level}] [{ThreadId}] [{SourceContext}] [{SessionId}] [{UserName}]: {Message}{NewLine}{Exception}"
}
}
],
在使用默认JSON格式化程序进行测试时将格式化程序行修改为以下内容:
"formatter": "Serilog.Formatting.Json.JsonFormatter, Serilog",
正如其他多个地方所建议的那样。
我的输出写得很好,但格式化程序设置似乎没有对输出产生任何影响。
我在这里做错了,或者这个功能是不是通过配置文件实现的?
提前感谢您的帮助。
答案 0 :(得分:1)
事实证明,(目前)无法同时指定formatter和outputTemplate(如https://github.com/serilog/serilog-aspnetcore/issues/31所述)。
希望将来这种情况可能会改变......