Q4:クラスによって出力ファイルを分けるには?

Q3:パッケージによって出力ファイルを分けるには?では logger 要素の名前をパッケージ名にしましたが、クラス単位の場合も同様な考えで、クラス名を logger 要素の名前とします。

以下は logtest.p1.LogTest1 クラスの出力するログのみをファイルへ出力する例です。

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">

<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">

  <appender name="FILE" class="org.apache.log4j.RollingFileAppender">
    <param name="File"   value="log/example.log" />
    <param name="Append" value="true" />                
    <layout class="org.apache.log4j.PatternLayout">
      <param name="ConversionPattern" value="%t %-5p %c{2} - %m%n"/>
    </layout>   
  </appender>

  <appender name="STDOUT" class="org.apache.log4j.ConsoleAppender">
    <layout class="org.apache.log4j.PatternLayout">
      <param name="ConversionPattern"
        value="%d %-5p [%t] %C{2} (%F:%L) - %m%n"/>
    </layout>           
  </appender>
  
  <logger name="logtest.p1.LogTest1">
    <level value="debug" />
    <appender-ref ref="FILE" />
  </logger>

  <root>
    <level value ="debug" />
    <appender-ref ref="STDOUT" />
  </root>

</log4j:configuration>

トップページへ戻る