Webアプリにwebapp/logs /というパスでファイルにログインしてほしい
Log4j.propertiesファイルで絶対パスを設定できますが、本番環境のディレクトリ構造は異なります。私にできる方法はありますか?
私が行う方法は次のとおりです。
log4j.appender.f=org.Apache.log4j.RollingFileAppender
log4j.appender.f.layout=org.Apache.log4j.PatternLayout
log4j.appender.f.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
log4j.appender.f.File=log.out
log4j.appender.f.MaxFileSize=100KB
これは、Eclipseディレクトリ(c:// Eclipse)のlog.logという名前のファイルにログを印刷しています。 Tomcat 6を使用しています。
log4jはシステムプロパティを拡張できるため、運用環境でログファイルを配置するディレクトリのプロパティを設定する場合、log4j.propertiesファイルから参照できます。
たとえば、webappsをTomcatにもデプロイします。 Tomcatは、Tomcatベースディレクトリを指すcatalina.base
という名前のシステムプロパティを設定します。次のようなlog4j構成:
log4j.appender.f.File = ${catalina.base}/logs/myapp.log
Tomcatのインストールディレクトリの下のlogsディレクトリにmyapp.log
ファイルが保存されます。
提供するのが最善:
log4j.appender.f.File = ./myapp.log
。現在のフォルダー(通常はプロジェクトのルートフォルダー)を表します。これは、異なるOSでも機能します。 $ {catalina.home}を使用する場合、Tomcatを介してWebアプリケーションを実行していない可能性があります。
この投稿は、問題の解決に役立ちました。
http://www.matjazcerkvenik.si/Site/Java::Log4j_Properties.html (更新されたリンク http://www.matjazcerkvenik.si/developer/Java -log4j.php )
乾杯!
log4j.appender.A1 = org.Apache.log4j.DailyRollingFileAppender
log4j.appender.A1.File = $ {catalina.home} /logs/myapp.log
log4j.appender.A1.DatePattern = '-' yyyy-MM-dd'.log '
この例では、現在のログファイルの名前は「myapp.log」になります。真夜中(または翌日に最初のログエントリが発生したとき)に、「myapp.log」の名前が「myapp-yyyy-mm-dd.log」に変更されます(たとえば、
"myapp-2010-12-21.log")と新しい "myapp.log"が作成されます。