我需要配置appsettings以使用serilog日志并分离相同的类(identityserver4,查询sql,应用程序)并重定向输出在dfferent文件中以分析程序流程 .

我已经安装了serilog,serilog.settings.configuration,serilog.sinks.rollingfile,serilog.filters.extensions和serilog.sinks.console,但是我没有找到一些文档来做到这一点 .

这是我在设置中的Serilog部分:

"Serilog": {
    "MinimumLevel": {
      "Default": "Debug",
        "Override": {
          "Microsoft": "Warning",
          "System": "Warning"
        }
      },
    "WriteTo": [
      { "Name": "LiterateConsole" },
      {
        "Name": "RollingFile",
        "Args": { "pathFormat": "Logs/log-{Date}.txt" }
      },
      {
        "Name": "RollingFile",
        "pathFormat": "Logs/DBCommands-{Date}.log",
        "Filter": [
          {
            "Name": "ByIncludingOnly",
            "Args": {
              "expression": "SourceContext = 'IdentityServer4'"
            }
          }
        ]
      }
    ],
    "Enrich": [ "FromLogContext", "WithMachineName", "WithThreadId" ],
      "Properties": {
        "Application": "dsm.security"
      }
    }

哪里我错了?

UPDATE 我希望使用以下代码获得相同的结果

Log.Logger = new LoggerConfiguration()
            .MinimumLevel.Debug()
            .ReadFrom.Configuration(Configuration)
            .MinimumLevel.Override("Microsoft", LogEventLevel.Information)
            .MinimumLevel.Override("System", LogEventLevel.Warning)
            .MinimumLevel.Override("Default", LogEventLevel.Warning)
            .Enrich.FromLogContext()
            .WriteTo.Console(theme: AnsiConsoleTheme.Code)
            .WriteTo.Logger(l => l.Filter.ByIncludingOnly(e => e.Level == LogEventLevel.Error).WriteTo.RollingFile(@"Logs/Error-{Date}.log"))
            .WriteTo.Logger(l => l.Filter.ByIncludingOnly(e => e.Level == LogEventLevel.Fatal).WriteTo.RollingFile(@"Logs/Fatal-{Date}.log"))
            .WriteTo.Logger(l => l.Filter.ByIncludingOnly(Matching.FromSource("dsm.security")).WriteTo.RollingFile(@"Logs/dsm.security-{Date}.log"))
            .WriteTo.Logger(l => l.Filter.ByIncludingOnly(Matching.FromSource("IdentityServer4")).WriteTo.RollingFile(@"Logs/IdentityServer-{Date}.log"))
            .WriteTo.Logger(l => l.Filter.ByIncludingOnly(Matching.FromSource("Microsoft.EntityFrameworkCore")).WriteTo.RollingFile(@"Logs/EF-{Date}.log"))
            //                .WriteTo.RollingFile(@"Logs/Verbose-{Date}.log")
            .CreateLogger();