我在 10 个 Web 服务器上部署了一个 Web 应用程序。它们都是这样配置的(注意,下面的
path
是共享网络路径。所以它们都指向同一个日志文件):
"Serilog": {
"Using": [ "Serilog.Sinks.Console", "Serilog.Sinks.File" ],
"MinimumLevel": "Debug",
"WriteTo": [
{
"Name": "Console"
},
{
"Name": "File",
"Args": {
"shared": true,
"path": "logs/foo_.log",
"rollingInterval": "Day",
"retainedFileCountLimit": 7
}
}
],
"Enrich": [ "FromLogContext", "WithMachineName", "WithThreadId" ]
},
但是我注意到日志文件有交错的消息:
2023-02-28 00:03:16.105 -06:00 [DBG] 结果过滤器的执行计划(顺序如下): ["Microsoft.AspNetCore.Mvc.Infrastructure.C2023-02-28 00:03:16.054 -06:00 [INF] Requ2023-02-28 00:03:16.130 -06:00 [DBG] 结果过滤器的执行计划(按以下顺序):
注意同一消息中的
[DBG]
和 [INF]
日志级别,这里特别是:
Infrastructure.C2023-02-28 00:03:16.054 -06:00 [INF] Requ2023-02-28 00:03:16.13
我怎样才能防止这种情况发生?我认为
shared: true
是 Serilog 处理这种情况所需的支持吗?