我正在使用NLog日志框架.我的应用程序需要保存最近14天的日志存档.
我使用的当前NLog.config看起来像这样.
<targets>
<target name="MyFile"
xsi:type="File"
fileName="C:\Logs\MyApp.log"
encoding="utf-8"
layout="${date:format=yyyyMMddHHmmss} ${message}"
archiveEvery="Day"
archiveFileName="C:\Logs\MyApp.{#}.log"
archiveNumbering="Date"
archiveDateFormat="yyyy-MM-dd"
maxArchiveFiles="14" />
</targets>
Run Code Online (Sandbox Code Playgroud)
问题是我的应用程序生成了大量日志条目,有时每日日志的大小可能超过1 GB.是否可以保留14天结构的每日存档,并添加新的子组,如果日志的大小限制超过100 mb,则另外存档单日.
所以最终的日志输出看起来像这样
MyApp.2016-10-01_1 // (100mb limit reached)
MyApp.2016-10-01_2
MyApp.2016-10-02
MyApp.2016-10-03_1 // (100mb limit reached)
MyApp.2016-10-03_2 // (100mb limit reached)
MyApp.2016-10-03_3
...
MyApp.2016-10-14
Run Code Online (Sandbox Code Playgroud)
是的,通过使用archiveNumbering=DateAndSequence
和archiveAboveSize.
例如
100MB = 104857600字节
<targets>
<target name="MyFile"
xsi:type="File"
fileName="C:\Logs\MyApp.log"
encoding="utf-8"
layout="${date:format=yyyyMMddHHmmss} ${message}"
archiveEvery="Day"
archiveFileName="C:\Logs\MyApp.{#}.log"
archiveNumbering="DateAndSequence"
archiveDateFormat="yyyy-MM-dd"
archiveAboveSize="104857600"
maxArchiveFiles="14" />
</targets>
Run Code Online (Sandbox Code Playgroud)
文件名将是:
MyApp.2016-10-01.1 // (100mb limit reached)
MyApp.2016-10-01.2
MyApp.2016-10-02.1
MyApp.2016-10-03.1 // (100mb limit reached)
MyApp.2016-10-03.2 // (100mb limit reached)
MyApp.2016-10-03.3
...
MyApp.2016-10-14.1
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4274 次 |
| 最近记录: |