B.2. アプリケーション別にログファイルを分類
アプリケーション別にロギング出力を分類するには、log4jのカテゴリを特定の appender に割り当てます。通常、
conf/log4j.xml
の配備記述子で行われます。
例B.2 App 1 のログ出力を別ファイルにフィルタリング
<appender name="App1Log" class="org.apache.log4j.FileAppender"> <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"></errorHandler> <param name="Append" value="false"/> <param name="File" value="${jboss.server.home.dir}/log/app1.log"/> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%d{ABSOLUTE} %-5p [%c{1}] %m%n"/> </layout> </appender> ... <category name="com.app1"> <appender-ref ref="App1Log"></appender-ref> </category> <category name="com.util"> <appender-ref ref="App1Log"></appender-ref> </category>
例B.3 TCLMCFilter を利用
Enterprise Platform 5.1 には、新クラス
jboss.logging.filter.TCLMCFilter
が含まれており、デプロイメント URL をもとにフィルタリングが可能になります。
<appender name="App1Log" class="org.apache.log4j.FileAppender"> <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"></errorHandler> <param name="Append" value="false"/> <param name="File" value="${jboss.server.home.dir}/log/app1.log"/> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%d{ABSOLUTE} %-5p [%c{1}] %m%n"/> </layout> <filter class="org.jboss.logging.filter.TCLMCFilter"> <param name="AcceptOnMatch" value="true"/> <param name="DeployURL" value="app1.ear"/> </filter> <!-- end the filter chain here --> <filter class="org.apache.log4j.varia.DenyAllFilter"></filter> </appender>