Serilog 设置刷新间隔

Art*_*yom 6 serilog asp.net-core

我在我的 ASP Core 2.2 应用程序中使用了 serilog。一切正常,但我无法设置flushToDiskInterval。例如,这意味着我想每分钟将日志刷新到磁盘,但日志会在创建时刷新。我的 Program.cs 文件:

public class Program
{
    public static void Main(string[] args)
    {
        Log.Logger = new LoggerConfiguration()
            .WriteTo.File("Logs/log-{Date}.txt", buffered: true, flushToDiskInterval: TimeSpan.FromSeconds(60))
        .CreateLogger();

        CreateWebHostBuilder(args).Build().Run();
    }

    public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
    WebHost.CreateDefaultBuilder(args)
        .UseSerilog() // Set serilog as the logging provider.
        .UseStartup<Startup>();
}
Run Code Online (Sandbox Code Playgroud)

那么问题来了,如何设置间隔呢?

==更新==


我无法理解,但现在一切正常……我检查过,确实设置了冲洗间隔。

Ela*_*esh 15

要在源代码中设置,

flushToDiskInterval: TimeSpan.FromSeconds(1)

或遵循 appsettings.json 中的设置,

"WriteTo": [
      { "Name": "Console" },
      {
        "Name": "File",
        "Args": {
          "restrictedToMinimumLevel": "Verbose",
          ...
          ...
          ...
          "flushToDiskInterval": 1
        }
      }
]
Run Code Online (Sandbox Code Playgroud)

flushToDiskInterval 以秒为单位。

参考链接。

https://github.com/serilog/serilog-aspnetcore

只是回答,以便它对像我这样正在寻找答案的人有用!

  • 我对这个设置有问题,冲水仍然很慢。更改为 "flushToDiskInterval": "00:00:01" 这使其行为符合预期。 (2认同)