log4net RollingFileAppender 喷出大量日志,maxSizeRollBackups 无效
log4net RollingFileAppender spewing tons of logs, maxSizeRollBackups has no effect
我的一项服务突然喷出大量日志文件,并且不限制写入的文件数量。日志(有点)命名为 MyService.2015-01-08.1、MyService.2015-01-08.2、MyService.2015-01-08.3 等,一直到 218。我想将其限制为每天 10 次,而不是像现在这样无限次。这是以前的日志配置:
<appender name="RollingFileAppender" type="Ourlib.Logging.CustomRollingFileAppender">
<file value="c:\logs\myservice" />
<appendToFile value="true" />
<rollingStyle value="Composite" />
<staticLogFileName value="false" />
<maxSizeRollBackups value="-1" />
<countDirection value="1" />
<maximumFileSize value="5000KB" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%utcdate [%thread] %-5level %property{CorrelationId} %property{CallPath} %logger{2} - %message%newline" />
</layout>
</appender>
我做了一些更改,如下所示。值得注意的是,我已将 maxSizeRollBackups
设置为 10,我认为这可以解决问题,但似乎没有什么不同。
<appender name="RollingFileAppender" type="Ourlib.Logging.CustomRollingFileAppender">
<file value="c:\logs\myservice" />
<appendToFile value="true" />
<rollingStyle value="Composite" />
<staticLogFileName value="false" />
<maxSizeRollBackups value="10" />
<maximumFileSize value="5000KB" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%utcdate [%thread] %-5level %property{CorrelationId} %property{CallPath} %logger{2} - %message%newline" />
</layout>
</appender>
更改已部署,但仍在创建新的日志文件,远远超过了新设置的 10 个。
假设我的部署是正确的,那有什么问题吗?是我误解了我更改的配置属性,还是这里发生了其他事情?
谢谢大家!
试试这个:
<appender name="RollingFile" type="log4net.Appender.RollingFileAppender">
<file value=".\App.log" />
<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
<appendToFile value="true" />
<maximumFileSize value="10MB" />
<maxSizeRollBackups value="5" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %level %logger - %message%newline" />
</layout>
</appender>
另一个例子:
<appender name="RollingFile" type="log4net.Appender.RollingFileAppender">
<file value=".\Logs\" />
<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
<staticLogFileName value="false" />
<rollingStyle value="Date" />
<datePattern value="'On_'yyyy-MM-dd'.log'" />
<appendToFile value="true" />
<maximumFileSize value="10MB" />
<maxSizeRollBackups value="10" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %level %logger - %message%newline" />
</layout>
</appender>
如果您必须使用自定义的,那么我想缺少的是:
- 文件值属性末尾的重击 (
<file value="c:\logs\myservice\" />
)。
- 复合文件定义,除非您的自定义附加程序已经这样做了。
- 如果前面没有 BufferedAppender,请使用 lockingModel。
尝试添加 DatePattern 并像这样将 maxSizeRollBackups 值更改为 10
<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
<file value="c:\logs\myservice" />
<appendToFile value="true" />
<rollingStyle value="Composite" />
<datePattern value=".yyyy-MM-dd" />
<maxSizeRollBackups value="10" />
<maximumFileSize value="5000KB" />
<countDirection value="1"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
</layout>
</appender>
这是一个复合 RollingFileAppender,每天最多保留 10 个 5000KB 日志备份
我的一项服务突然喷出大量日志文件,并且不限制写入的文件数量。日志(有点)命名为 MyService.2015-01-08.1、MyService.2015-01-08.2、MyService.2015-01-08.3 等,一直到 218。我想将其限制为每天 10 次,而不是像现在这样无限次。这是以前的日志配置:
<appender name="RollingFileAppender" type="Ourlib.Logging.CustomRollingFileAppender">
<file value="c:\logs\myservice" />
<appendToFile value="true" />
<rollingStyle value="Composite" />
<staticLogFileName value="false" />
<maxSizeRollBackups value="-1" />
<countDirection value="1" />
<maximumFileSize value="5000KB" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%utcdate [%thread] %-5level %property{CorrelationId} %property{CallPath} %logger{2} - %message%newline" />
</layout>
</appender>
我做了一些更改,如下所示。值得注意的是,我已将 maxSizeRollBackups
设置为 10,我认为这可以解决问题,但似乎没有什么不同。
<appender name="RollingFileAppender" type="Ourlib.Logging.CustomRollingFileAppender">
<file value="c:\logs\myservice" />
<appendToFile value="true" />
<rollingStyle value="Composite" />
<staticLogFileName value="false" />
<maxSizeRollBackups value="10" />
<maximumFileSize value="5000KB" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%utcdate [%thread] %-5level %property{CorrelationId} %property{CallPath} %logger{2} - %message%newline" />
</layout>
</appender>
更改已部署,但仍在创建新的日志文件,远远超过了新设置的 10 个。
假设我的部署是正确的,那有什么问题吗?是我误解了我更改的配置属性,还是这里发生了其他事情?
谢谢大家!
试试这个:
<appender name="RollingFile" type="log4net.Appender.RollingFileAppender">
<file value=".\App.log" />
<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
<appendToFile value="true" />
<maximumFileSize value="10MB" />
<maxSizeRollBackups value="5" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %level %logger - %message%newline" />
</layout>
</appender>
另一个例子:
<appender name="RollingFile" type="log4net.Appender.RollingFileAppender">
<file value=".\Logs\" />
<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
<staticLogFileName value="false" />
<rollingStyle value="Date" />
<datePattern value="'On_'yyyy-MM-dd'.log'" />
<appendToFile value="true" />
<maximumFileSize value="10MB" />
<maxSizeRollBackups value="10" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %level %logger - %message%newline" />
</layout>
</appender>
如果您必须使用自定义的,那么我想缺少的是:
- 文件值属性末尾的重击 (
<file value="c:\logs\myservice\" />
)。 - 复合文件定义,除非您的自定义附加程序已经这样做了。
- 如果前面没有 BufferedAppender,请使用 lockingModel。
尝试添加 DatePattern 并像这样将 maxSizeRollBackups 值更改为 10
<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
<file value="c:\logs\myservice" />
<appendToFile value="true" />
<rollingStyle value="Composite" />
<datePattern value=".yyyy-MM-dd" />
<maxSizeRollBackups value="10" />
<maximumFileSize value="5000KB" />
<countDirection value="1"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
</layout>
</appender>
这是一个复合 RollingFileAppender,每天最多保留 10 个 5000KB 日志备份