Serilog 日志框架如何自动删除超过 N 天的日志 ?

开发 架构
我的程序使用的日志框架是 Serilog,我是按天分割日志文件的,由于每日文件都比较大,我经常手工删除,但这样做很傻,请问日志框架有没有自动帮我删除 N 天之间的日志呢?

 [[431915]]

 

咨询区

  • JohnB:

我的程序使用的日志框架是 Serilog,我是按天分割日志文件的,由于每日文件都比较大,我经常手工删除,但这样做很傻,请问日志框架有没有自动帮我删除 N 天之间的日志呢?

回答区

  • somethingRandom:

根据官方文档:https://github.com/serilog/serilog-sinks-file/blob/dev/README.md#limits ,默认保留文件个数是 retainedFileCountLimit =31,这就意味着最多保留最近的31个文件,当然你也可以手工去修改,参考如下代码:

  1. var log = new LoggerConfiguration() 
  2.  
  3. .WriteTo.File("log.txt", retainedFileCountLimit:= 42) 
  4.  
  5. .CreateLogger(); 

如果不想限制文件个数,可以设置:retainedFileCountLimit = null 。

除了硬编码,还可以通过 xml 进行配置。

  1. <appSettings> 
  2.   <add key="serilog:using:File" value="Serilog.Sinks.File" /> 
  3.   <add key="serilog:write-to:File.path" value="log.txt" /> 
  4.   <add key="serilog:write-to:File.retainedFileCountLimit" value="42"/> 
  5. </appSettings> 

 

当然如何你的程序时 .NET Core 的话,可在 appsetting.json 中做如下配置:

  1.   "Serilog": { 
  2.     "WriteTo": [ 
  3.       { "Name""File""Args": { "path""log.txt""retainedFileCountLimit""42" } } 
  4.     ] 
  5.   } 
  • mihails.kuzmins:

Serilog 非常灵活,即可以按天自动创建日志文件,还可以设置最多保留多少个文件,参考配置。

  1.     "Serilog": { 
  2.     "Using": [ "Serilog.Sinks.File" ], 
  3.     "MinimumLevel""Debug"
  4.     "WriteTo": [ 
  5.       { "Name""Console" }, 
  6.       { 
  7.         "Name""File"
  8.         "Args": { 
  9.           "path""App_Data\\Logs\\app_.log"
  10.           "rollingInterval""Day"
  11.           "fileSizeLimitBytes""52428800"
  12.           "rollOnFileSizeLimit""true"
  13.           "retainedFileCountLimit""100"
  14.           "retainedFileTimeLimit""7.00:00:00", //Deletes files older than 7 days 
  15.           "outputTemplate""{Timestamp:yyyy-MM-dd HH:mm:ss.fff zzz} [{Level:u3}] {Message:lj}{NewLine}{Exception}" 
  16.         } 
  17.       } 
  18.     ] 
  19.   }, 

更多细节,参见。

  • https://github.com/serilog/serilog-sinks-file/pull/90
  • https://github.com/serilog/serilog-sinks-rollingfile/blob/dev/README.md

点评区

.NET 有太多的日志框架,比如:nlog,log4net,其实我个人对 Serilog 持谨慎态度,毕竟看过关于日志方面的坑都有它的踪影!

责任编辑:武晓燕 来源: NET技术问答
相关推荐

2024-02-21 11:33:25

Serilog.NET日志库

2024-06-21 14:41:52

2022-02-18 11:26:23

日志程序Linux

2010-05-18 11:28:57

MySQL binlo

2010-09-02 11:14:39

SQL删除日志

2009-07-07 14:32:47

JDK日志Formatter

2021-08-10 07:27:42

ASP.NETFluentd日志

2010-10-29 14:44:35

ORACLE归档日志

2023-09-04 08:36:19

SpringAop日志输出

2010-11-10 11:54:32

SQL SERVER删

2010-11-19 13:14:21

Oracle删除归档日

2021-02-18 07:46:07

日志框架

2009-07-07 14:00:25

JDK日志Handler

2023-10-10 09:19:59

日志Java

2013-04-15 15:07:43

清理日志Linux系统

2022-08-11 07:07:46

系统Linux日志

2010-10-13 14:37:49

2011-03-28 09:40:41

2015-06-02 14:43:43

shell运维

2010-02-05 15:33:29

Android JDK
点赞
收藏

51CTO技术栈公众号