簡體   English   中英

Serilog 不會將應用程序初始日志寫入帶有 appsettings 的控制台

[英]Serilog does not write application initial logs to console with appsettings

我已經配置了 appsettings.json 文件來寫入控制台日志。 該應用程序使用 do.net core 6。

{
  "Serilog": {
    "Using": [ "Serilog.Sinks.Console" ],
    "MinimumLevel": "Debug",
    "WriteTo": [
      { "Name": "Console" }
    ]
  }
}

並從如下配置中讀取。

builder.Logging.ClearProviders();

var logger = new LoggerConfiguration()
    .ReadFrom.Configuration(builder.Configuration)
    .CreateLogger();

builder.Logging.AddSerilog(logger);

但是當我運行應用程序時,初始日志不會寫入控制台。 我有一個黑色的空控制台。

檢查文檔,並嘗試使用@Rippo 指出的 Log.Logger。


您可以嘗試通過Program.cs中的Host配置它嗎?

(.net core 6,如果你有不同的版本,請調整它)

builder.Host.UseSerilog((hostContext, services, configuration) => {
    configuration.MinimumLevel.Is(LogEventLevel.Debug)
    .Enrich.FromLogContext()
    .WriteTo.Console()

    .WriteTo.Debug() // also try writing to the debug console and see if it output something
});

我的MainAsync是這樣的,在 .net6.0 控制台應用程序中

Log.Logger = new LoggerConfiguration()
  .ReadFrom.Configuration(Configuration)
  .CreateLogger();

從 memory 您需要告訴 Serilog 配置。 請注意Log.Logger ,我從未像您一樣嘗試將Serilog插入到builder.logger配置中。

{
  "Serilog": {
    "Using": [ "Serilog.Sinks.Console" ],
    "MinimumLevel": "Verbose",
    "WriteTo": [
      { "Name": "Console" },
      {
        "Name": "File",
        "Args": {
          "path": "D:\\_tmp\\LM3.NNB.Organisation.Deduping.txt",
          "rollingInterval": "Day"
        }
      }
    ],
    "Properties": {
      "Application": "LM3.NNB.Organisation.Deduping"
    }
  }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM