我第一次在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>
答案 0 :(得分:3)
您可以将文件大小限制为10MB,并将max arhive files count设置为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时,它将替换存档文件。因此,您将拥有两个文件 - 当前和已存档。