.net NLog限制每日存档的大小
我正在使用NLog日志框架。我的应用程序需要保留过去14天日志的存档 我当前使用的NLog.config如下所示.net NLog限制每日存档的大小,.net,logging,nlog,.net,Logging,Nlog,我正在使用NLog日志框架。我的应用程序需要保留过去14天日志的存档 我当前使用的NLog.config如下所示 问题是,我的应用程序生成大量日志条目,有时每日日志的大小可能会超过1GB。是否可以保留14天的每日存档结构,并添加新的子组,以便在日日志的大小限制超过100 mb时额外存档一天 所以最终的日志输出应该是这样的 MyApp.2016-10-01_1 // (100mb limit reached) MyApp.2016-10-01_2 MyApp.2016-10-02 MyAp
问题是,我的应用程序生成大量日志条目,有时每日日志的大小可能会超过1GB。是否可以保留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
是,通过使用
archiveNumbering=DateAndSequence
和archiveAboveSize
e、 g
100MB=104857600字节
文件名为:
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
所以你有三个问题需要解决-
<target xsi:type="File" name="MyFile"
fileName="C:\Logs\MyApp_${shortdate}.log"
layout="<layout_here>"
....
archiveFileName="C:\Logs\MyApp_${shortdate}_{#}.log"
archiveNumbering="Sequence"
archiveAboveSize="<your_size_limit_here>"
maxArchiveDays="14"/>
参考资料:这似乎不起作用。我将其设置为
maxArchiveFiles=“7”
。它保存了7个文件,而不是7天的文件。所以,如果我的文件在一天内按大小滚动10次,我甚至得不到一天的日志。@Swoogan这是正常的行为。如果没有达到限制,您可以在归档目录中找到七天日志。但是,如果达到限制,比如说20GB的日志,旧日志将被覆盖。目前,按天归档和按大小归档选项是相互排斥的。使用属性maxArchiveFiles nlog可以保存7个日志。在未来的实现中,Nlog可能会添加maxSizeArchiveFilesPerDay和maxSizeArchive属性,从而使您具有更多的通用性。您找到解决方案了吗?