Serilog 未记录来自 Program.cs 的日志

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

我已将 .NET 5 应用程序更新到 .NET 6,但遇到了日志记录问题。在 Program.cs 中,

var app = builder.Build();
行上方的所有内容都会记录到控制台,而该行下方的所有内容都不会记录到控制台或文本文件中。我怀疑这是因为
appsettings.json
中的配置在调用
Build()
后生效,并且在appsettings.json中默认日志级别设置为
Error
。虽然我在 appsettings.json 中为
"DefaultNameSpace.Program":"Information"
设置了覆盖,但它似乎不适用于 Program.cs 中的日志。

DefaultNameSpace
是在项目设置中设置的命名空间。

在 . NET 6 中,您不再需要编写 Program 类和 Main 方法。 Program 类的正确命名空间是什么?

program.cs

// The initial "bootstrap" logger is able to log errors during start-up. It's completely replaced by the
// logger configured in `UseSerilog()` below, once configuration and dependency-injection have both been
// set up successfully.
Log.Logger = new LoggerConfiguration()    
    .WriteTo.Console()
    .CreateBootstrapLogger();

Log.Information("Starting up!");

try
{
    var builder = WebApplication.CreateBuilder(args);
    builder.Host.UseSerilog((context, services, configuration) => configuration
                .ReadFrom.Configuration(context.Configuration));

    builder.WebHost.UseUrls("http://*:40004");    

    Log.Information("Building application.");

    // Information logs above this line are logged
    var app = builder.Build();

    // Information logs below are not getting logged        
    Log.Information("Running application");

    app.Run();

    Log.Information("Application Started");
}
catch (Exception ex)
{
    Log.Fatal(ex, "An unhandled exception occurred during bootstrapping");
}
finally
{
    Log.CloseAndFlush();
}

appsettings.json

"Serilog": {
  "Using": [ "Serilog.Sinks.Console","Serilog.Sinks.File" ],
  "MinimumLevel": {
    "Default": "Error",
    "Override": {
      "Microsoft": "Warning",        
      "MyNameSpace.Program": "Information"
    }
  },
  "WriteTo": [
    {
      "Name": "Console"
    },
    {
      "Name": "File",
      "Args": {
        "path": "C:\\Logs\\UI.txt",
        "fileSizeLimitBytes": "10485760",
        "rollingInterval": "Day",
        "rollOnFileSizeLimit": true
      }
    }
  ]
},
.net-6.0 serilog serilog-sinks-file microsoft.extensions.logging
1个回答
-1
投票

同样的问题 - Build() 行之后没有日志条目 - 有解决方案吗?

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