配置Serilog File sink以在每次应用程序运行时使用一个日志文件

时间:2018-04-13 17:24:36

标签: .net logging serilog

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

我没有找到如何在任何文件接收器中进行操作(Rolling,Alternative ..)
任何线索?

1 个答案:

答案 0 :(得分:3)

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

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

根据自述文件的Rolling Policies部分:

  

同时指定rollingIntervalrollOnFileSizeLimit会导致同时应用这两个策略,而 同时指定两个策略都不会导致所有事件都写入单个文件。 < / em>的