我在.Net WPF应用程序中使用Serliog。
有没有办法可以"尾巴" (删除)日志文件超过N天时会自动删除吗?
由于
答案 0 :(得分:8)
根据https://github.com/serilog/serilog-sinks-file/blob/dev/README.md,retainedFileCountLimit
的默认值为31,因此默认情况下仅保留最新的31个文件。
要更改代码中保存的文件数量:
var log = new LoggerConfiguration()
.WriteTo.File("log.txt", retainedFileCountLimit:= 42)
.CreateLogger();
通过null
以删除限制。
在XML <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 appsettings.json
配置中
{
"Serilog": {
"WriteTo": [
{ "Name": "File", "Args": { "path": "log.txt", "retainedFileCountLimit": "42" } }
]
}
}
并传递一个空字符串以删除限制。 请注意,我尚未测试JSON配置。
答案 1 :(得分:5)
https://github.com/serilog/serilog-sinks-rollingfile/blob/dev/README.md 看这里。您可以每天配置新日志文件的自动创建,也可以设置要保留多少日志文件
答案 2 :(得分:3)
现在,您还可以指定属性retainedFileTimeLimit
:
https://github.com/serilog/serilog-sinks-file/pull/90
顺便说一句,如果您只想限制日期,请不要忘记指定retainedFileCountLimit: null
。在当前实现的情况下,reservedFileCountLimit的默认值为31。因此,如果省略该参数,则也会应用此过滤器