首页 > 解决方案 > 将日期命名档案与 archiveAboveSize 参数一起使用

问题描述

使用 nlog 4.7.2.11786。与最新版本相同的行为 - 4.7.10.13013。

我用来archiveAboveSize在日志文件达到设定大小时调用归档。一天的所有日志都需要存储在同一个存档中。

但是,当归档每天发生多次时,旧数据只是在归档中被覆盖,因为它正在归档具有相同名称的文件。

例如,有一个文件debugLog_2021-06-07.log. 当它达到 10 MB 大小时,它会被压缩并添加到新文件debugLog_Archive_20210607.zip中。之后,zip文件将在debugLog_2021-06-07.log里面。

我看到了多种方法来处理这个问题,但找不到实现它们的方法。

  1. 如果档案中已经存在文件名,则增加它的名称。

  2. 如果档案中已经存在文件名,则追加文件。

NLog目前是否支持这些?

我的配置:

<?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"/>
<variable name="fileDir" value="C:\logfolder\"/>
<variable name="archiveAboveSize" value="10485760"/> <!-- 10 MB -->
<variable name="maxArchiveFiles" value="10"/>

<targets>
<target xsi:type="File" name="logTarget" 
    fileName="${fileDir}\debugLog_${shortdate}.log"
    layout="${longdate} ${level}: ${message}"
    archiveFileName="${fileDir}\debugLog_Archive_{######}.zip"
    archiveAboveSize="${archiveAboveSize}"
    archiveNumbering="Date"
    maxArchiveFiles="${maxArchiveFiles}"
    enableArchiveFileCompression="True"
/>
</targets>

<rules>
<logger name="*" minlevel="Debug" writeTo="logTarget" />
</rules>
</nlog>

标签: nlog.net-4.7

解决方案


推荐阅读