4

Google Web Toolkit (GWT) - アプリケーションを 3 つの異なるモードで実行しています。

  1. Tomcat にデプロイ
  2. ホステッド モード
  3. ジュニットテスト

これらの各モードが正しくログを記録するように log4j.properties を構成するにはどうすればよいですか?

${catalina.base}が使用する場合、ホストされたモードと Junit テストでは使用できません。また、単に relative を使用するlogs/myapplication.logと、Tomcat では機能しません。

java.io.FileNotFoundException: log/myapplication.log (Keine Berechtigung)

ログ ディレクトリをアプリケーション パスに対して相対的に指定できる場合は、webapps/myapplication/logs にログを保存してもかまいませんが、ログ ファイルが /var/log/tomcat7/... または他のログ フォルダ。

現在、私の log4j.properties には、ファイル ロギング用の次のエントリが含まれています。

log4j.appender.file=org.apache.log4j.FileAppender
log4j.appender.file.File=${catalina.base}/logs/myapplication.log
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%c %C %d{ABSOLUTE} %-5p %C{1}: %m%n
log4j.appender.file.threshold=DEBUG
log4j.appender.file.Append=false
4

1 に答える 1

3

1. Tomcat にデプロイ

${catalina.home} にログインしましたが、設定は問題ないようです。Windows で構成をローカルで実行していますが、サーバーを起動しても、このフォルダーが見つからないというエラーは表示されません。Windows のどこかを指す場合は、実行構成の引数に次を追加してみてください。

-Dcatalina.base="C:\somefolder\" -Dcatalina.home="C:\somefolder\"

2.ホストモード

このモードでは、IDE でローカルに実行します。したがって、ファイルにログを記録する必要はありません。この場合、stdoutlog4j.properties にアペンダーを追加します。

log4j.rootLogger=DEBUG, stdout, A

これにより、IDE のコンソールにログ メッセージが表示されます。

3. JUnit テスト

テスト用に別のログ構成ファイルを使用します (これは標準的な方法です)。これにより、本番ログ レベルに影響を与えることなく、ログ レベルをより適切に制御できます。

于 2012-08-29T15:02:11.050 に答える