2011-11-08 19 views
0

私は、レポートサービスとして簡単なSpring MVCアプリケーションを開発しています。ローカルでは、mvn tomcat:runを使用してmaven-tomcat-pluginでアプリケーションを実行しています。これは期待どおりに動作します。しかし、私は今、私はwebappsディレクトリにwarファイルをロードするのTomcat 6を実行しているサーバーに、このサービスを展開しようとしている、Tomcatは、それに気付き、それを展開して、文句を言う:TomcatのSpring MVCアプリケーション用のLog4j設定

log4j:WARN No appenders could be found for logger 
(org.springframework.web.filter.CharacterEncodingFilter). 

log4j:WARN Please initialize the log4j system properly. 

そして、当然、サービスのログは機能しません。

上記のエラーメッセージは私には分かりません。だれかが私に助けを与えることができるのだろうかと思います。後世のために

、私は(/src/main/resourcesに住んでいる)非常に単純なlog4j.propertiesファイルを持っている:

log4j.rootLogger=WARN, console 

log4j.appender.console=org.apache.log4j.ConsoleAppender 
log4j.appender.console.layout=org.apache.log4j.PatternLayout 
log4j.appender.console.layout.ConversionPattern= %d{HH:mm:ss,SSS} [%t] %-5p %x %C{1} : %m%n 

log4j.logger.com.rtr=DEBUG 

私の現在の仮説は、Tomcatボックスがすべてで、このプロパティ・バンドルを見て、私されない可能性があることですわからない。バンドルをWEB-INF/classesにホットコピーし、適切な結果を得てこの仮説を確認できました。クラスパス上にあるが、奇妙な場所にない正しい場所は何ですか?

ご了承ください。

+0

プロパティファイルがwarファイルの '/ WEB-INF/classes'にあることを確認しましたか? –

答えて

2

mavenライフサイクルのcompileフェーズで、Mavenはリソースファイルを/src/main/resourcesから/WEB-INF/classesにコピーします。コマンドmvn war:warを使用してもこれらのリソースはコピーされないため、アプリケーションでリソースを利用できるようにするには、mvn compile war:warを実行する必要があります。

1

ファイルを自動的に取得するには、log4j.propertiesファイルをクラスパスに配置する必要があります。私は通常、TomcatのLibフォルダまたはwarのlibフォルダに配置します。

+0

私は 'src/main/webapp/WEB-INF/lib'に入れてみましたが、動作していないようですので、このパス(これは私にとってはちょっと臭いものです)を続けてバンドルをホットコピーしました'WEB-INF/classes /'ディレクトリにコピーします。私がこれをしたとき、Tomcatはバンドルをうまく見つけました。奇妙な? – idbentley

+0

srcツリーのディレクトリは、WARファイル内のクラスパスにありません。 – DwB

+0

@DwBこれはMavenプロジェクトです。 '/ src/main/resources'のリソースはclassディレクトリにコピーされます。 –

関連する問題