由于一些技术原因,我们使用 serilog 将日志和错误文件分成两个单独的文件。在这种情况下,不会单独记录来自组件空间跟踪的日志和错误。
"Serilog": {
"MinimumLevel": {
"Default": "Debug",
"Override": {
"Default": "Debug",
"Microsoft": "Information",
"Microsoft.Hosting.Lifetime": "Information",
"ComponentSpace": "Debug"
}
},
"WriteTo": [
{
"Name": "Logger",
"Args": {
"configureLogger": {
"Filter": [
{
"Name": "ByIncludingOnly",
"Args": {
"expression": "(@l in ['Error', 'Fatal', 'Warning'])"
}
}
],
"WriteTo": [
{
"Name": "File",
"Args": {
"path": "Logs/WebApp/Errors/error_.log",
"outputTemplate": "{Timestamp:o} [{Level:u3}] ({SourceContext}) {Message}{NewLine}{Exception}",
"rollingInterval": "Day"
}
}
]
}
}
},
{
"Name": "Logger",
"Args": {
"configureLogger": {
"Filter": [
{
"Name": "ByIncludingOnly",
"Args": {
"expression": "(@l in ['Information', 'Debug'])"
}
}
],
"WriteTo": [
{
"Name": "File",
"Args": {
"path": "Logs/WebApp/Informations/log_.log",
"outputTemplate": "{Timestamp:o} [{Level:u3}] ({SourceContext}) {Message}{NewLine}{Exception}",
"rollingInterval": "Day"
}
}
]
}
}
}
],
"Enrich": [
"FromLogContext",
"WithMachineName"
],
"Properties": {
"Application": "MultipleLogFilesSample"
}
},
请参考以下正在使用的 serilog 配置
我还按照下面的链接启用了跟踪, https ://www.componentspace.com/Forums/7936/Enabling-SAML-Trace?Keywords=serilog 当我的配置名称与“ Serilog:Async ”相同时效果很好",但我的问题是我使用名称“Logger”将单个记录器拆分为日志和错误,因此在这种情况下,组件空间跟踪不起作用。
注意:您好,感谢您的回复,我在 appsettings.json 文件中没有这些配置,而是在自定义 json 文件中拥有这些配置,并且该自定义 json 文件的路径已添加到 appsettings.json 文件中
下面的代码片段用于从 custon 文件加载日志配置
var configuration = new ConfigurationBuilder().SetBasePath(KestrelServerOptionsExtensions.GetBasePath()).AddJsonFile("appsettings.json").Build();
string ConfigPath = configuration.GetSection("AppSettings:ProlaborateConfigPath").Value;//ConfigPath
var Logconfiguration = new ConfigurationBuilder().AddJsonFile(ConfigPath).Build();
var functionDependencyContext = DependencyContext.Load(typeof(Startup).Assembly);
Log.Logger = new LoggerConfiguration().ReadFrom.Configuration(Logconfiguration, "WebApp:Logger", dependencyContext: functionDependencyContext).CreateLogger();
谁能帮我解决这个问题?