当前一个文件太大时,如何让log4net创建一个新文件?
我有一个任务需要1个小时才能完成并生成大约40MB的日志,但我想要40个1MB的文件而不是一个40MB的文件。我没有对log4net
进行任何配置。我现在拥有的只是库和代码:
private static readonly ILog log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
然后我就这样做了:
log.Debug("some message");
怎么做?
编辑:
<?xml version="1.0"?>
<configuration>
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
</startup>
<appSettings>
<add key="mymail" value="mitja.resek@gmail.com" />
</appSettings>
<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
<file value="log.txt" />
<appendToFile value="true" />
<rollingStyle value="Size" />
<maxSizeRollBackups value="10" />
<maximumFileSize value="1MB" />
<staticLogFileName value="true" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
</layout>
</appender>
</configuration>
这是我的app.config但我仍然有40MB文件:S
答案 0 :(得分:8)
<appender name="RollingFileAppenderV1" type="log4net.Appender.RollingFileAppender">
<file type="log4net.Util.PatternString" value="F:\HornetFeed\%property{LogName}" />
<appendToFile value="true" />
<rollingStyle value="Size" />
<maxSizeRollBackups value="-1" />
<maximumFileSize value="5000KB" />
<staticLogFileName value="true" />
<countDirection value="1"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%m%n" />
</layout>
<filter type="log4net.Filter.PropertyFilter">
<Key value="Version" />
<StringToMatch value="1" />
</filter>
<filter type="log4net.Filter.DenyAllFilter" />
</appender>
这将使用countdirection&gt;创建无限文件备份。 0,以便最新文件具有最新/最大名称,即最新备份的log.5(第5次备份)。
<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
<file value="logfile" />
<appendToFile value="true" />
<rollingStyle value="Composite" />
<datePattern value=".yyyyMMdd-HHmm" />
<maxSizeRollBackups value="10" />
<maximumFileSize value="1MB" />
<countDirection value="1"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
</layout>
</appender>
这是一个复合RollingFileAppender,每分钟最多可保留10个1MB日志备份。
的的App.config 强> 的
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
</configSections>
<log4net debug="false">
<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
<file value="logfile" />
<appendToFile value="true" />
<rollingStyle value="Composite" />
<datePattern value=".yyyyMMdd-HHmm" />
<maxSizeRollBackups value="10" />
<maximumFileSize value="1MB" />
<countDirection value="1"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
</layout>
</appender>
<root>
<priority value="ALL" />
<appender-ref ref="RollingLogFileAppender" />
</root>
<category name="testApp.LoggingExample"><priority value="ALL" /></category>
</log4net>
</configuration>
答案 1 :(得分:1)
您必须使用RollingFileAppender,然后使用以下内容对其进行配置:
<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
<file value="log.txt" />
<appendToFile value="true" />
<rollingStyle value="Size" />
<maxSizeRollBackups value="10" />
<maximumFileSize value="1MB" />
<staticLogFileName value="true" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
</layout>
</appender>
这将生成名为 log.txt.1,log.txt.2,log.txt.3 等的1MB文件...
您可以在the documentation about the log4net configuration中找到更多信息和示例。