NLog自动删除日志,设置保留一周内日志


NLog自动删除日志

          .Net6(.Net Core 6)的项目使用NLog记录日志,在一次测试服务器,服务构建后无法启动,经过查找原因发现是NLog记录日志占用磁盘240G导致磁盘空间不够,于是

 经过查找发现NLog.config的一个路由规则导致的如下:

问题一

<logger name="*" minlevel="Info" writeTo="logfile" />

 这个规则导致所有Info信息类型的消息,全部都会被写入日志文件中,包括EFCore自带的生成的sql语句日志,都会被写入日志文件中如图:

 

解决办法:

修改后的代码

<logger name="Microsoft.*" minlevel="Info" writeTo="logfile" final="true" />

命名空间Microsoft下所有类的、级别在Info的 日志信息都不会被记录,同时其它后续规则也都会被忽略(因为这里设置了final="true"),自己记录的日志会被记录如:

_logger.LogInformation("我的Info日志");

问题二

解决了问题一,还不够。虽然系统日志不会被记录,只记录自定义日志,但是记录的日志随着时间增加,日志文件所占磁盘空间仍然会不断变大,

所以主题来了"NLog自动删除日志"

配置如下:

简要说明两个参数: maxArchiveDays:7 保留七天内的日志、maxArchiveFiles=10 保留文档最大数量为10。保留最近七天的十个日志文件,其他日志文件自动删除。

    

GitHub上NLog参考文档 :   https://github.com/NLog/NLog/wiki/File-target

  解决办法:

 修改后加入代码

 
 
 maxArchiveDays="7"
 maxArchiveFiles="10"
 

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM