将特定命名空间添加到 appsettings.json - Serilog ASP.NET Core 3.1



我遵循了一个教程,让你在appsettings.json中设置所有Serilog配置;但是,我无法让我的WebAppLogger.Startup输出任何消息:

{
"AllowedHosts": "*",
"Serilog": {
"Using": [],
"MinimumLevel": {
"Default": "Warning",
"WebAppLogger.Startup": "Verbose",
"Override": {
"Microsoft": "Warning",
"System": "Warning"
}
},
"Enrich": [ "FromLogContext", "WithMachineName", "WithProcessId", "WithThreadId" ],
"WriteTo": [
{ 
"Name": "Console",
"Args": {
"outputTemplate": "{Timestamp:G} {Level} {Message}{NewLine:1}{Exception}"
}
},
{
"Name": "File",
"Args": {
"path": "Logs/log.txt",
"outputTemplate": "{Timestamp:G} {Level} {Message}{NewLine:1}"
}
},
{
"Name": "File",
"Args": {
"path": "Logs/log.json",
"formatter": "Serilog.Formatting.Json.JsonFormatter, Serilog"
}
}
]
}
}

我尝试添加"Using": [{"WebAppLogger.Startup": "Verbose"}]但这会使应用程序崩溃。

我在Serilog文档中没有发现与使用appsettings.json有关的任何内容。

另外,有没有办法完全抑制MicrosoftSystem消息?

appsettings.jsonUsing字段中,您必须指定要使用的接收器。

例如,如果要写入Console,则应指定类的全名,包括命名空间(在本例中为Serilog.Sinks.Console(,当然,前提是安装了接收器的 NuGet 包。

例如:

{
"Serilog": {
"Using":  ["Serilog.Sinks.Console"], // <<<<<<<<<<##############
"MinimumLevel": "Debug",
"WriteTo": [
{ "Name": "Console" }
],
"Enrich": ["FromLogContext", "WithMachineName", "WithThreadId"],
}
}

您可以在 GitHub 存储库中看到示例:

  • https://github.com/serilog/serilog-settings-configuration
  • https://github.com/serilog/serilog-settings-configuration/tree/dev/sample/Sample

SystemMicrosoft您可以使用过滤器(例如ByExcludingByIncluding(。在Serilog.Settings.Configuration repo的示例中,有一个如何通过appsettings.json配置它的示例。

相关内容

  • 没有找到相关文章

最新更新