ASP.Net Core 2 中的 Serilog JsonFormatter 未从 appsettings 文件应用
Serilog JsonFormatter in an ASP.Net Core 2 not being applied from appsettings file
我有一个 ASP.Net Core 2 Web 应用程序,我试图将 SeriLog 配置为以 JSON 格式输出,通过 appsettings.json 文件配置。我无法使用标准 Serilog.Formatting.Json.JsonFormatter 或紧凑型 Serilog.Formatting.Compact.CompactJsonFormatter.
我看到有一个类似的问题被问到 here,但似乎没有使用 appsettings.json 的结论性答案,并且该线程已经沉寂了一年多(而且我没有足够的声誉来发表评论以推动进一步的回应)。
我正在使用以下 SeriLog 包:
- Serilog.AspNetCore - 2.1.0
- Serilog.Enrichers.Environment - 2.1.2
- Serilog.Enrichers.Thread - 3.0.0
- Serilog.Formatting.Compact - 1.0.0
- Serilog.Settings.Configuration - 2.4.0
- Serilog.Sinks.RollingFile - 3.3.0
我的 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",
正如其他多个地方所建议的那样。
我的输出写得很好,但格式化程序设置似乎对输出没有任何影响。
我是不是哪里做错了,还是这个功能还没有通过读取的配置文件实现?
在此先感谢您的帮助。
事实证明,(目前)不可能同时指定格式化程序和输出模板(如 https://github.com/serilog/serilog-aspnetcore/issues/31 中所述)。
希望这种情况在未来有所改变...
我有一个 ASP.Net Core 2 Web 应用程序,我试图将 SeriLog 配置为以 JSON 格式输出,通过 appsettings.json 文件配置。我无法使用标准 Serilog.Formatting.Json.JsonFormatter 或紧凑型 Serilog.Formatting.Compact.CompactJsonFormatter.
我看到有一个类似的问题被问到 here,但似乎没有使用 appsettings.json 的结论性答案,并且该线程已经沉寂了一年多(而且我没有足够的声誉来发表评论以推动进一步的回应)。
我正在使用以下 SeriLog 包:
- Serilog.AspNetCore - 2.1.0
- Serilog.Enrichers.Environment - 2.1.2
- Serilog.Enrichers.Thread - 3.0.0
- Serilog.Formatting.Compact - 1.0.0
- Serilog.Settings.Configuration - 2.4.0
- Serilog.Sinks.RollingFile - 3.3.0
我的 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",
正如其他多个地方所建议的那样。
我的输出写得很好,但格式化程序设置似乎对输出没有任何影响。
我是不是哪里做错了,还是这个功能还没有通过读取的配置文件实现?
在此先感谢您的帮助。
事实证明,(目前)不可能同时指定格式化程序和输出模板(如 https://github.com/serilog/serilog-aspnetcore/issues/31 中所述)。
希望这种情况在未来有所改变...