いつも忘れがちなのでメモ。
NLOGのアーカイブ機能と、ファイル名の{shotdate}は併用できない。
ファイル名は固定、アーカイブのファイル名を日付は可能。archiveNumbering="Date"、archiveFileNameの日付部分は{#}を使う。
The problem is the {shortdate} in fileName=
{shortdate} means it rolls automatically, so the archive/compression-logic gets confused.
ex.
nlog.config
<targets>
<target
xsi:type="File"
name="TraceLog"
fileName="${basedir}/logs/trace.log"
encoding="UTF-8"
lineEnding="CRLF"
archiveFileName="${basedir}/logs/trace_{#}.log.zip"
archiveEvery="Day"
archiveNumbering="Date"
enableArchiveFileCompression="true"
layout="${longdate} [${threadid:padding=8}] [${uppercase:${level:padding=-5}}] ${message} ${exception:format=Message, Type, ToString:separator=\r\n}" />
</targets>
ex.
以下のサイトでは、NLOGのアーカイブ機能と、ファイル名の{shotdate}は併用してるが、これだと正常にアーカイブできなかった」。
https://www.niceonecode.com/Blog/49/Archive-nlog-files-and-enable-Archive-File-Compression-Compress-the-archive-files-into-the-zip-files-
ex.
細かい仕様は以下参照
https://github.com/nlog/NLog/wiki/File-target