(1)每分钟归档一次,最多保留3个文件
<?xml version="1.0" encoding="utf-8" ?>
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.nlog-project.org/schemas/NLog.xsd NLog.xsd"
autoReload="true"
throwExceptions="false"
internalLogLevel="Off" internalLogFile="c:\temp\nlog-internal.log">
<variable name="myvar" value="myvalue"/>
<targets>
<target name="logconsole" xsi:type="Console" />
<!--保存至文件-->
<target name="logfile" xsi:type="File" encoding="utf-8"
fileName="${basedir}/AppLogs/${date:format=yyyy}/${date:format=MM}/${shortdate}.txt"
archiveFileName="${basedir}/AppLogs/Archive/${shortdate}.{####}.txt"
maxArchiveFiles="3"
archiveEvery="Minute"
layout="RecordTime:${longdate} ThreadID:${threadid} Level:${level}${newline}LogMessage:${message} ${onexception:${exception:format=tostring} ${newline} ${stacktrace} ${newline}" />
</targets>
<rules>
<!--minlevel 大于等于当前级别的都会被记录下来-->
<logger name="*" minlevel="Debug" writeTo="logfile" />
</rules>
</nlog>
在 NLog 4.5 之前,如下截图中存档文件名中如果没有占位符,存档时NLog会把Archive目录下的所有其他文件删除,只保留3条,如下截图二
(2)每天归档一次,最多保留30个文件
<?xml version="1.0" encoding="utf-8" ?>
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.nlog-project.org/schemas/NLog.xsd NLog.xsd"
autoReload="true"
throwExceptions="false"
internalLogLevel="Off" internalLogFile="c:\temp\nlog-internal.log">
<variable name="myvar" value="myvalue"/>
<targets>
<target name="logconsole" xsi:type="Console" />
<!--保存至文件-->
<target name="logfile" xsi:type="File" encoding="utf-8"
fileName="${basedir}/AppLogs/logfile.txt"
archiveFileName="${basedir}/AppLogs/Archive/Log{######}.txt"
maxArchiveFiles="30"
archiveEvery="Day"
layout="RecordTime:${longdate} ThreadID:${threadid} Level:${level}${newline}LogMessage:${message} ${onexception:${exception:format=tostring} ${newline} ${stacktrace} ${newline}" />
</targets>
<rules>
<!--minlevel 大于等于当前级别的都会被记录下来-->
<logger name="*" minlevel="Debug" writeTo="logfile" />
</rules>
</nlog>
C#实现定时删除日志文件夹及文件夹下文件
在做项目的时候经常会遇到log文件记录太多导致硬盘容量不足,需要手动删除几月前的log文件。其实通过写代码就可以实现该功能。
一般记录log文档时都是按照日期创建文件夹,以下代码可实现删除超过设定天数的文件夹日志
/// <summary>
/// 删除文件夹
/// </summary>
/// &...
通过Nuget安装,搜索Nlog, 然后安装NLog和NLog.Config(相当于一个配置模板)。
当然也可以自己在项目根目录下创建一个配置文件NLog.config,注意在NLog.config的属性中设置 Copy to Output Directory: Copy always
基本目录结构
<?xml version="1.0" ?>
<...
Net没有内置的文本日志提供者,对于实际需要记录日志到文本文件中的需求不相匹配,常用的第三方日志框架包括Log4Net,Nlog,SeriLog。考虑到系统的兼容性与使用的简易程度,推荐使用NLog框架记录系统运行日志记录。NLog是一个灵活且免费的日志记录平台,适用于各种.NET平台,包括.NET标准。NLog 使写入多个目标变得容易。(数据库、文件、控制台,调试输出,电子邮件,时间日志)并动态更改日志记录配置。易于配置NLog 非常容易配置,无论是通过配置文件还是以编程方式。
1.安装NLog.Web.AspNetCore
2.在Startup.cs文件的方法public void Configure(IApplicationBuilder app, IHostingEnvironment env)中,添加下面一行代码:
env.ConfigureNLog("NLog.config");
很多人在自己的项目中加入了日志管理系统,有的是自己写的,有的则是用的别人写好的依赖库,但是不是所有的依赖库都能满足我们的需求,这时候是不是要自己往上添加呢
背景,接手的项目里面已经加好日志管理了,但是没有定期清理的功能,我看连两年前的文件都在,一天一个txt文件,虽然不大,但是量多啊,所以还是有必要加定期清理的
* Created by Forrest.
* User: Administrator
* Date: 2020/12/11
* Description:
2.添加Nlog.config文件(新建项 --> 应用程序配置文件)
注意文件属性 → 复制到输出目录 一定要选择始终复制,否则无法输出日志,并且找不到任何报错信息
<?xml version="1.0" encoding="utf-8" ?>
<nlog xmlns="http://www.nlog-project