Tomcat 7
サーバーにWebアプリをデプロイしました。私のアプリケーションはlog4j
とfile appender
を使用しています。ただし、すべてのログメッセージがファイルに書き込まれるわけではありません。
私のクラスパスには、次のものがあります。
log4j-1.2.14.jar
slf4j-api-1.6.1.jar
slf4j-log4j12-1.6.1.jar
log4j.properties
ファイルはローカルマシンで正常に機能しており、正しくデプロイされています。
アプリケーションで生成されたエラーメッセージがcatalina.out
に書き込まれているのに、log4j log
には書き込まれていません。 catalina.out
のログメッセージは、出力パターンが私のlog4j
パターンとは異なる形式であるため、他のログフレームワークからのものであるように見えます。 catalina.log
に表示されるログは次のようになります。
Nov 4, 2011 11:05:31 AM org.Apache.myfaces.shared_impl.util.StateUtils reconstruct
SEVERE
そして私のlog4jパターンは次のようなものです:
2011-11-03 16:42:09,336 ["http-bio-8080"-exec-13] ERROR
一部のログはlog4j
ファイルログに表示されますが、すべてではありません。私が読んだことから、slf4j
は、ログ出力をファネルするためにそれらのjarが必要です。何か案は?
依存関係としてjcl-over-slf4jを含めてみてください。 myfacesはおそらくcommons-loggingを使用しています。
slf4jドキュメントを確認してください: http://www.slf4j.org/legacy.html#jcl-over-slf4j
StateUtils クラスがJava.util.logging(jul)を使用しているようです。他のmyfacesクラスもjulを使用するのは当然のことです。したがって、おそらくSLF4Jを介して7月のログを漏斗したいと思うでしょう。 レガシーAPIのブリッジング 、特にjul-to-slf4j
ブリッジをご覧ください。
jul-to-slf4j
をインストールする際の使用方法については、 SLF4JBridgeHandler javadocs を参照してください。
http://adfinmunich.blogspot.de/2012/03/how-to-configure-Tomcat-to-use-slf4j.html で説明されている手順に従ってTomcatサーバーを構成します。このブログエントリでは、Java.util.loggingをslf4jに置き換える方法について説明します(ファサードの背後でlog4jを使用)。