簡體   English   中英

Serilog 不寫入文件

[英]Serilog not writing to file

為我的 .net 核心應用程序設置 Serilog,一切都編譯並運行但不寫入文件。 我怎樣才能查明問題所在?

我只使用 Serilog package - 但似乎還有很多其他的,我很樂意使用另一個。

在我的 startup.cs 我有

using Serilog;

public Startup(IConfiguration configuration)
{
    Configuration = configuration;

    Log.Logger = new LoggerConfiguration()
         .MinimumLevel.Debug()
         .ReadFrom.Configuration(configuration)
         .CreateLogger();
}

在我的 appsettings.json 我有

{
  "AllowedHosts": "*",
  "Serilog": {
    "MinimumLevel": "Debug",
    "Override": {
      "Microsoft.AspNetCore": "Warning"
    },
    "WriteTo": [
      {
        "Name": "Console"
      },
      {
        "Name": "File",
        "Args": {
          "path": "C:\\log\\Batching\\apptest.log"
        }
      }
    ]
  }
}

在我的 Program.cs 我有

public static IHostBuilder CreateHostBuilder(string[] args) =>
    Host.CreateDefaultBuilder(args)
        .UseSerilog()
        .ConfigureWebHostDefaults(webBuilder =>
        {
            webBuilder.UseStartup<Startup>();
        });

最后我用這個語句來測試寫作:

Log.Information("write something to file");

它不工作。 接下來我可以嘗試什么?

正如文檔中提到的:

要將文件接收器與Microsoft.Extensions.Configuration一起使用,例如 ASP.NET Core 或 .NET Core,請使用Serilog.Settings.Configuration package

你可以在這個頁面找到不同包的介紹: https://github.com/serilog

我嘗試了這些包:

在此處輸入圖像描述

在program.cs中設置如下:

public static IHostBuilder CreateHostBuilder(string[] args) =>
    Host.CreateDefaultBuilder(args)
        .ConfigureWebHostDefaults(webBuilder =>
        {
            webBuilder.UseStartup<Startup>();
        })
        .UseSerilog((context, configuration) =>
        {
            var config = context.Configuration;
            configuration.ReadFrom.Configuration(config);                     
        });

它適用於我的情況:

在此處輸入圖像描述

更新:

我在 appsettings.json 中配置如下:

在此處輸入圖像描述

我也試過我桌面的絕對路徑,它也可以

暫無
暫無

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

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