我是在将运行多年的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时,它将替换存档文件.因此,您将拥有两个文件-当前文件和已归档文件.