Serilog无法从asp.net Core 2.2 API中的配置工作

Zoi*_*nky 7 c# serilog asp.net-core

public class Program
{
    public static void Main(string[] args)
    {
        CreateWebHostBuilder(args).Build().Run();
    }

    public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
        WebHost.CreateDefaultBuilder(args)
           .UseSerilog((ctx, config) => { config.ReadFrom.Configuration(ctx.Configuration); })
           .UseStartup<Startup>();
}


public class Startup
{
    public IContainer Container { get; private set; }
    public Startup(IConfiguration configuration)
    {
        Log.Warning("test");
        Configuration = configuration;
    }

}
Run Code Online (Sandbox Code Playgroud)

appsettings.json

{
    "Serilog": {
    "MinimumLevel": {
      "Default": "Information",
      "Override": {
        "Default": "Information",
        "Microsoft": "Information",
        "System": "Information"
      }
    },
    "WriteTo": [

      {
        "Name": "RollingFile",
        "Args": {
          "pathFormat": "C:\\test.txt",
          "outputTemplate": "{Timestamp:yyyy-MM-dd HH:mm:ss.ffff}|{TenantName}|{RequestId}|{SourceContext}|{Level:u3}|{Message:lj}{NewLine}{Exception}",
          "restrictedToMinimumLevel": "Information"
        }
      }
    ]
  },

  "AllowedHosts": "*"
}
Run Code Online (Sandbox Code Playgroud)

我已经安装了所有软件包

  • Serilog,
  • Serilog.AspCore,
  • Serilog.Settings.Configuration,
  • Serilog.Sink.File

Sim*_*Ged 6

您的配置用于,RollingFile但您的软件包列表显示Serilog.Sinks.File。这些是不同的。您需要添加该Serilog.Sinks.RollingFile软件包,它应该开始工作。

如果要使用接收File器(如注释中提到的@Kirk,现在建议使用该接收器),则需要将设置更改为

"WriteTo": [
    {
        "Name": "File",
        "Args": {
            "path": "C:\\test.txt",
            "outputTemplate": "{Timestamp:yyyy-MM-dd HH:mm:ss.ffff}|{TenantName}|{RequestId}|{SourceContext}|{Level:u3}|{Message:lj}{NewLine}{Exception}",
            "restrictedToMinimumLevel": "Information"
        }
    }
Run Code Online (Sandbox Code Playgroud)

注意

pathFormatpathFile水槽

请参阅Serilog文件接收器文档

  • 实际上,Serilog.Sinks.File也实际上是推荐的选项,因为它具有改进的滚动文件功能。 (4认同)