我在 .Net WPF 应用程序中使用 Serliog。
有没有一种方法可以让我在日志文件超过 N 天时自动“尾随”(删除)日志文件?
根据文档,日志的保留期限由
retainedFileCountLimit
设置决定。默认情况下,retainedFileCountLimit
的值为 31,因此仅保留最近的 31 个日志文件。
以编程方式配置
Serilog
时,您可以通过指定 retainedFileCountLimit
参数来调整保留的文件数量,如下所示:
var log = new LoggerConfiguration()
.WriteTo.File("log.txt", retainedFileCountLimit: 42)
.CreateLogger();
通过
null
取消限制。
使用 XML 配置
Serilog
时(在 <appSettings>
中):
<appSettings>
<add key="serilog:using:File" value="Serilog.Sinks.File" />
<add key="serilog:write-to:File.path" value="log.txt" />
<add key="serilog:write-to:File.retainedFileCountLimit" value="42"/>
</appSettings>
并传递一个空字符串以删除限制。
使用 JSON 配置
Serilog
时(在 appsettings.json
文件中):
{
"Serilog": {
"WriteTo": [
{
"Name": "File",
"Args": {
"path": "log.txt",
"retainedFileCountLimit": "42"
}
}
]
}
}
并传递一个空字符串以删除限制。
https://github.com/serilog/serilog-sinks-rollingfile/blob/dev/README.md 看这里。您可以配置每天自动创建新日志文件,也可以设置要保留的日志文件数量
现在你还可以指定一个属性
retainedFileTimeLimit
:
https://github.com/serilog/serilog-sinks-file/pull/90
顺便说一句,如果您只想按日期进行限制,请不要忘记指定
retainedFileCountLimit: null
。在当前实现中,retainedFileCountLimit 的默认值为 31。因此,如果您忽略该参数,也将应用此过滤器