来自多个服务器的 Serilog 文件接收器具有交错的消息

问题描述 投票:0回答:0

我在 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 处理这种情况所需的支持吗?

asp.net logging serilog
© www.soinside.com 2019 - 2024. All rights reserved.