アプリケーション全体のすべてのログ詳細を 2 つの異なるファイルに保存したいと考えています。例: 1 つのファイルにはすべての DEBUG 情報が含まれ、もう 1 つのファイルには ERROR のみが含まれます。
私の現在のlog4j.propertiesファイルは次のようになります
log4j.rootLogger=DEBUG, file1
#Log Message in debug.log file
log4j.appender.file1=org.apache.log4j.FileAppender
log4j.appender.file1.File=log/debug.log
log4j.appender.file1.layout=org.apache.log4j.PatternLayout
log4j.appender.file1.layout.ConversionPattern=%-4r %d{dd MMM yyyy HH:mm:ss} [%t] %-5p %c %x - %m%n
log4j.rootLogger=ERROR, file2
#Log Message in error.log file
log4j.appender.file2=org.apache.log4j.FileAppender
log4j.appender.file2.File=log/error.log
log4j.appender.file2.layout=org.apache.log4j.PatternLayout
log4j.appender.file2.layout.ConversionPattern=%-4r %d{dd MMM yyyy HH:mm:ss} [%t] %-5p %c %x - %m%n
ただし、これはerror.logファイル(最後に言及されたファイル)のみを更新します
私が今までに遭遇した最善の解決策は、
log4j.logger.OTHER_LOGGER=DEBUG, file2
log4j.additivity.OTHER_LOGGER = false
#File Appender
log4j.appender.file2=org.apache.log4j.FileAppender
log4j.appender.file2.File=log/admin.log
log4j.appender.file2.layout=org.apache.log4j.PatternLayout
log4j.appender.file2.append=false
log4j.appender.file2.layout.ConversionPattern=%-4r %d{dd MMM yyyy HH:mm:ss} [%t] %-5p %c %x - %m%n
と使用
private static final Logger logger = LoggerFactory.getLogger("OTHER_LOGGER");
しかし、これを使用する際の問題は、ログが更新されたときに次のように表示されることです
0 22 Oct 2012 20:38:50 [main] INFO OTHER_LOGGER - testclass
ここで、ログが報告されたクラスに言及する代わりに、OTHER_LOGGER と表示されます
したがって、2 つの rootLooger を使用するのが最善の方法ですが、どういうわけかそれは許可されません。
誰か助けてくれませんか?