1

私はここにこのlog4net構成を持っています:

  <log4net>
    <root>
      <level value="DEBUG" />
      <appender-ref ref="LogFileAppender" />
    </root>
    <appender name="LogFileAppender" type="log4net.Appender.RollingFileAppender">
      <param name="File" value="D:\logfolder\logfile.txt" />
      <param name="AppendToFile" value="true" />
      <rollingStyle value="Size" />
      <maxSizeRollBackups value="10" />
      <maximumFileSize value="20MB" />
      <staticLogFileName value="true" />
      <layout type="log4net.Layout.PatternLayout">
        <param name="ConversionPattern" value="%-5p%d{yyyy-MM-dd hh:mm:ss} – %m%n" />
      </layout>
    </appender>
  </log4net>

これはうまく機能していますが、「INFO」入力のみで別のログファイルを作成したいと思います。C#コードを変更せずに、構成ファイルを変更するだけで、2つの異なるファイルにログインすることはできますか?
または、質問を簡単にしましょう。構成ファイルに正確に何を追加する必要がありますか?

また、別の問題があります。「DEBUG」ではなく「INFO」を選択すると、INFO+ERRORログが表示されます。INFOだけでなく、ERRORログを取得するために、これを何らかの方法で変更できますか?ありがとうございました。

4

1 に答える 1

3

フィルタを指定して2番目のアペンダーを構成し、ルートロガーに追加できます。

<log4net>
    <root>
      <level value="DEBUG" />
      <appender-ref ref="LogFileAppender" />
      <appender-ref ref="AnotherLogFileAppender" />
    </root>
    <appender name="LogFileAppender" 
              type="log4net.Appender.RollingFileAppender">
      ...
    </appender>
    <appender name="AnotherLogFileAppender" 
              type="log4net.Appender.RollingFileAppender">
      <param name="File" value="D:\logfolder\anotherlogfile.txt" />
      <param name="AppendToFile" value="true" />
      <rollingStyle value="Size" />
      <maxSizeRollBackups value="10" />
      <maximumFileSize value="20MB" />
      <staticLogFileName value="true" />
      <layout type="log4net.Layout.PatternLayout">
        <param name="ConversionPattern" 
               value="%-5p%d{yyyy-MM-dd hh:mm:ss} – %m%n" />
      </layout>
      <filter type="log4net.Filter.LevelRangeFilter">
                <param name="LevelMin" value="INFO"/>
                <param name="LevelMax" value="INFO"/>
      </filter>
    </appender>
  </log4net>

paramまた、タグ付きの古い構成ではなく、新しいスタイルのlog4net構成を使用することを検討してください。

<log4net>
    <root>
      <level value="DEBUG" />      
      <appender-ref ref="LogFileAppender" />
      <appender-ref ref="AnotherLogFileAppender" />
    </root>
    <appender name="LogFileAppender"
          type="log4net.Appender.RollingFileAppender">
      <file value="D:\logfolder\logfile.txt"/>
      <appendToFile value="true"/>
      <rollingStyle value="Size"/>
      <maxSizeRollBackups value="10"/>
      <maximumFileSize value="20MB"/>
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%-5p%d{yyyy-MM-dd hh:mm:ss} – %m%n"/>
      </layout>
    </appender>
    <appender name="AnotherLogFileAppender" 
              type="log4net.Appender.RollingFileAppender">
      <file value="D:\logfolder\anotherlogfile.txt"/>
      <appendToFile value="true"/>
      <rollingStyle value="Size"/>
      <maxSizeRollBackups value="10"/>
      <maximumFileSize value="20MB"/>
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%-5p%d{yyyy-MM-dd hh:mm:ss} – %m%n"/>
      </layout>               
      <filter type="log4net.Filter.LevelMatchFilter">
        <levelToMatch value="INFO"/>
      </filter>
    </appender>
  </log4net>
于 2012-10-18T18:11:32.430 に答える