4

前のファイルが大きくなりすぎたときに、log4netに新しいファイルを作成させるにはどうすればよいですか?

完了するのに1時間かかり、約40MBのログを生成するタスクがありますが、1つの40MBファイルではなく1MBの40ファイルが必要です。の設定は行っていません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

4

2 に答える 2

10
<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> 0の無限のファイルバックアップが作成され、最新のファイルの名前が最新/最大になります。つまり、最新のバックアップ(5番目のバックアップ)の場合はlog.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>

これは、毎分最大10個の1MBログバックアップを保持するCompositeRollingFileAppenderです。

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>
于 2013-01-07T11:19:53.760 に答える
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ファイルが生成されます。

log4net構成に関するドキュメントで、より多くの情報と例を見つけることができます。

于 2013-01-07T11:20:10.650 に答える