将Serilog文件接收器配置为在每个应用程序运行中使用一个日志文件

Igo*_*ack 5 .net logging serilog

我想将Serilog配置为在每次运行时创建一个日志文件。
文件名应基于当前日期/时间:
第1次运行: log_20180413_1020.txt
第2次运行: log_20180413_1033.txt

我没有在任何文件接收器(滚动,替代..)中找到如何做的
任何线索?

McG*_*V10 5

Serilog.Sinks.File没有启动周期或大小限制的情况下配置接收器,并在启动时配置日志记录时将时间戳记添加到日志文件名:

string timestamp = DateTime.Now.ToString("yyyyMMdd_HHmm");
var log = new LoggerConfiguration()
    .WriteTo.File($"log{timestamp}.txt")
    .CreateLogger();
Run Code Online (Sandbox Code Playgroud)

根据自述文件的滚动策略部分:

同时指定rollingIntervalrollOnFileSizeLimit将导致同时应用两个策略,而同时不指定将导致所有事件都写入单个文件。

  • 如何从 appsetting.json 实现这一点?而不是代码。 (4认同)