私はlog4jを使用するtomcat java Webアプリケーションを持っています。特定のパッケージクラスのログを他のファイルと別のファイルにリダイレクトするためにlog4jにいくつかのプロパティを指定できますか?log4jファイルを別のファイルにリダイレクトする
ありがとうございます!
私はlog4jを使用するtomcat java Webアプリケーションを持っています。特定のパッケージクラスのログを他のファイルと別のファイルにリダイレクトするためにlog4jにいくつかのプロパティを指定できますか?log4jファイルを別のファイルにリダイレクトする
ありがとうございます!
この設定をロギングに使用できます。また、ログファイルのパスを変更することもできます。例えば
# Root logger option
log4j.rootLogger=INFO, file
# Direct log messages to a log file
log4j.appender.file=org.apache.log4j.RollingFileAppender
#Redirect to Tomcat logs folder
#log4j.appender.file.File=${catalina.home}/logs/logging.log
log4j.appender.file.File=./logs/test.log // change your path
log4j.appender.file.MaxFileSize=10MB
log4j.appender.file.MaxBackupIndex=10
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
log4j.logger.org.springframework=WARN
log4j.logger.com.amstech=DEBUG
、あなたの二つのパッケージのためのログファイルは、次のとおりです。
com.abhi.packageOne; -> packageOneFile.log
com.abhi.packageTwo; -> packageTwoFile.log
はファイルやコンソールとしてrootLoggerを追加します。あなたはそれに応じて加算を設定する必要があなたの二つのパッケージ
log4j.appender.MAIN_LOG=org.apache.log4j.RollingFileAppender
log4j.appender.MAIN_LOG.File=/path/main.log
log4j.appender.MAIN_LOG.layout=org.apache.log4j.PatternLayout
log4j.appender.PACKAGE_ONE=org.apache.log4j.RollingFileAppender
log4j.appender.PACKAGE_ONE.File=/path/packageOneFile.log
log4j.appender.PACKAGE_ONE.layout=org.apache.log4j.PatternLayout
log4j.appender.PACKAGE_TWO=org.apache.log4j.RollingFileAppender
log4j.appender.PACKAGE_TWO.File=/path/packageTwoFile.log
log4j.appender.PACKAGE_TWO.layout=org.apache.log4j.PatternLayout
のための2つの新しいアペンダを作成する必要が
log4j.rootLogger=Debug, file
あなたの要件ごとにどのログレベル、すなわちトレース、情報、errrorなどを維持することができます。
中毒性とは何ですか?
ログの冗長性を避けるため、Log4j加算性を使用できます。 Log4jロガーのadditivityプロパティーをfalseに設定するだけで、そのロガーに送られるログメッセージは親ロガーに伝搬されません。したがって、新しいLog4j構成ファイルは次のようになります。
log4j.additivity.com.abhi.packageOne=false
log4j.additivity.com.abhi.packageTwo=false
log4j.logger.com.abhi.packageOne=DEBUG, PACKAGE_ONE
log4j.logger.com.abhi.packageTwo=DEBUG, PACKAGE_TWO
log4j.rootLogger=DEBUG, MAIN_LOG
ここで、MAIN_LOGは通常のログファイルです。 PACKAGE_ONEとPACKAGE_TWOのログをMAIN_LOGにも出力したい場合は、以下の行を含めます。
log4j.rootLogger=DEBUG, MAIN_LOG , PACKAGE_ONE , PACKAGE_TWO
log4j.rootLogger = DEBUG、MAIN_LOG、PACKAGE_ONE、PACKAGE_TWOこのステートメントは何ですか?詳しく説明できますか? 、log4j.additivity.com.abhi.packageOne = false、log4j.rootLogger = DEBUG、MAIN_LOG、PACKAGE_ONEが同時に必要ですか? – user1846749
私は同じ方法でロガーを定義しました。私の場合、ログはファイルではなくコンソールに表示されますが、コンソールアペンダーはどこにも定義されていません。 – user1846749
これらのすべての文の上に 'log4j.rootLogger = debug、file'を追加する必要があります。私は答えを更新しました。 –
ログlog4j.appender.file.File =。/ログ/ test.logにリダイレクトされ、それが指定されている場所を、残りのログは、デフォルトのcatalina.outに行きますパッケージ名がありますか? – user1846749