(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文档时都是按照日期创建文件夹,以下代码可实现删除超过设定天数的文件日志
    /// &lt;summary&gt;
    /// 删除文件夹
    /// &lt;/summary&gt;
    /// &...
通过Nuget安装,搜索Nlog, 然后安装NLogNLog.Config(相当于一个配置模板)。
当然也可以自己在项目根目录下创建一个配置文件NLog.config,注意在NLog.config的属性中设置 Copy to Output Directory: Copy always
基本目录结构
<?xml version="1.0" ?>
&lt...
                                    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