无法让 Serilog 写入 RollingFile 日志

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

我正在尝试在 dotnet webapi 应用程序中使用 Serilog。我需要日志记录才能转到控制台和滚动日志文件。

一切都输出到控制台,但滚动日志文件中没有出现任何内容,并且我在任何地方都没有收到任何错误。

我在代码中设置了 serilog,如下所示:

// in program.cs Main
var configuration = new ConfigurationBuilder()
    .SetBasePath(BASEDIR)
    .AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
    .Build();
Log.Logger = new LoggerConfiguration()
    .ReadFrom.Configuration(configuration)
    .Enrich.FromLogContext()
    .Enrich.With(new ThreadIdEnricher())
    .CreateLogger();

// startup.cs Configure
app.UseSerilogRequestLogging();

在 appsetting.json 中我有

 {
  "Serilog": {
    "Using": [ "Serilog.Sinks.Console", "Serilog.Sinks.File" ],
    "Enrich": [ "FromLogContext", "WithMachineName", "WithThreadId" ],
    "MinimumLevel": {
      "Default": "Information",
      "Override": {
        "Microsoft.AspNetCore.Mvc.Internal": "Warning",
        "Microsoft.AspNetCore.Authentication": "Warning",
        "Microsoft.AspNetCore": "Warning",
        "Microsoft": "Warning",
        "System": "Warning"
      }
    },
    "WriteTo": [
      {
        "Name": "Async",
        "Args": {
          "configure": [
            {
              "Name": "Console",
              "Args": {
                "outputTemplate": "{Timestamp:yyyy-MM-dd HH:mm:ss} {Level:u1} TID:{ThreadId} {Message:lj}{NewLine}{Exception}",
                "theme": "Serilog.Sinks.SystemConsole.Themes.SystemConsoleTheme::Literate, Serilog.Sinks.Console"
              }
            }
          ]
        }
      },
      {
        "Name": "Async",
        "Args": {
          "configure": [
            {
              "Name": "RollingFile",
              "Args": {
                "pathFormat": "c:\\logs\\{Date}.log",
                "outputTemplate": "{Timestamp:yyyy-MM-dd HH:mm:ss} {Level:u1} TID:{ThreadId} {Message:lj}{NewLine}{Exception}",
                "buffered": false,
                "rollingInterval": "Serilog.RollingInterval.Day, Serilog.Sinks.File",
                "retainedFileCountLimit": 7
              }
            }
          ]
        }
      }
    ]
  }
}
c# asp.net-core-webapi serilog
2个回答
0
投票

您是否尝试过更改为静态文件名?该路径存在吗?似乎他们的 github 页面上的自述文件中的配置与您的有点不同:https://github.com/serilog/serilog-sinks-file#user-content-json-appsettingsjson-configuration:~:text=节点%2C%20%3A-,%7B,%7D,-参见%20%20XML 也可以尝试从代码中设置它回来,然后移回配置文件?


0
投票

最常见的错误是缺少

Serilog.Sinks.RollingFile
nuget 包。确保您已安装此软件。

© www.soinside.com 2019 - 2024. All rights reserved.