C#-首次使用NLog

我是在将运行多年的winForm应用程序中首次使用NLog.此应用程序还在文本​​文件中记录数据.由于该应用程序将运行多年,因此文本文件会越来越大.这就是为什么我要限制文本文件的大小.可以说当达到10MB限制时,文本文件开始删除最后一个条目以适应新数据.我该如何使用NLog.

在我的C#项目中的某些地方

private static Logger logger = LogManager.GetCurrentClassLogger();

logger.Trace("Error:.........."); // and similar msgs

我的NLog.config是(它只是将数据记录到文本文件中)

<?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">

  <targets>
    <target name="logfile" xsi:type="File" fileName="${basedir}/file.txt" />
  </targets>

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

解决方法:

您可以将文件大小限制为10MB,并将最大存档文件数设置为1:

<target xsi:type="File"
      name="file"
      layout="${longdate}|${level:uppercase=true}|${logger}|${message}"        
      archiveAboveSize="10000000"
      maxArchiveFiles="1"
      archiveFileName="${basedir}/log_archived.txt"
      fileName="log.txt" />

当文件扩展到10MB时,它将被存档,并且日志记录将继续到新文件.当新文件扩展10MB时,它将替换存档文件.因此,您将拥有两个文件-当前文件和已归档文件.

上一篇:最接近点对-分治法-C++实现


下一篇:c#-支持NLog 2.1