我有一个循环过100,000+项的过程,并且在关于它们的日志中进行了大量的写操作,而且由于log4net不工作,我在保留所有需要的日志时遇到了问题我如何期待它。log4net没有保留正确的备份文件数
我的配置是这样的:
<appender name="debug" type="log4net.Appender.RollingFileAppender">
<file value="logs\" />
<datePattern value="yyyyMMdd'_DEBUG.log'" />
<staticLogFileName value="false" />
<appendToFile value="true" />
<rollingStyle value="Composite" />
<maxSizeRollBackups value="10" />
<maximumFileSize value="10MB" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%newline[%date]-%level-%logger[%M]- Linea:%L - %message%newline"/>
</layout>
<filter type="log4net.Filter.LevelRangeFilter">
<param name="LevelMin" value="debug"/>
<param name="LevelMax" value="debug"/>
</filter>
</appender>
使用这个配置,我预计,一旦第一个文件已满,第二个文件被创建,然后是第三等,最多的每天10个。我认为覆盖任何以前的日志的唯一方法是拥有10个完整文件,并且下一个条目将不得不从第一个文件重写现有文件。但是,发生的情况是,我在第一个文件已满(并转换为第一个备份)后创建了一个文件,但是在第二个文件已满后,而不是将其转换为另一个备份并转到第三个文件,它开始覆盖原始文件。
所以我最终
20171005_DEBUG.log
20171005_DEBUG.log.1
,没有别的,与20171005_DEBUG.log被覆盖掉了一个。
我可以通过将最大文件大小更改为100MB或任何真正巨大的数据来“解决”这个问题,但我宁愿知道我在这里做错了什么。任何人?
“既然你说过处理100.000+行日志,你有没有考虑登录到数据库呢?”为什么? – Antrim
那么如果你只是为了保留日志而保留日志,那么查询数据库查看日志事件比解析日志文件更方便。 – Filburt