【问题标题】:Configure Serilog File sink to use one log file per application run将 Serilog 文件接收器配置为每次应用程序运行使用一个日志文件
【发布时间】:2018-04-13 17:24:36
【问题描述】:

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

我没有找到如何在任何文件接收器中执行此操作(滚动,替代..)
有什么线索吗?

【问题讨论】:

标签: .net logging serilog


【解决方案1】:

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

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

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

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

【讨论】:

  • 如何从 appsetting.json 中实现?而不是代码。
  • 另外,除了每次运行滚动之外,我更希望打开 rollingIntervalrollOnFileSizeLimit ..
  • configuration package,它非常灵活,可以通过一些相当高级的反射应用任意设置。
猜你喜欢
  • 2013-10-08
  • 1970-01-01
  • 2017-11-21
  • 1970-01-01
  • 2015-03-21
  • 2014-02-03
  • 2023-03-12
  • 2023-03-19
  • 1970-01-01
相关资源
最近更新 更多