【发布时间】:2013-07-04 10:28:57
【问题描述】:
我在同一个包中有 2 个 Java 类。我想将这 2 个类的消息记录到 2 个不同的日志文件中。
日志消息不应在这两个文件中的任何一个中重复。
我正在使用以下 log4j.properties 文件:
# Set root category priority to DEBUG and its appender to CONSOLE and LOGFILE_ENGINE.
log4j.rootCategory=DEBUG, LOGFILE_ENGINE, SYNC_HANDLER
log4j.additivity.LOGFILE_ENGINE = false
log4j.additivity.SYNC_HANDLER = false
log4j.category.org.jboss=ERROR
log4j.category.org.apache.axis=ERROR
log4j.category.org.springframework=ERROR
log4j.category.org.hibernate=ERROR
log4j.category.org.jgroups=ERROR
log4j.category.org.apache.catalina.loader.WebappClassLoader=OFF
log4j.logger.net.sourceforge.stripes=ERROR
log4j.logger.net.sf.ehcache=ERROR
log4j.additivity.org.jboss.cache=false
log4j.logger.org.quartz=ERROR
# LOGFILE_ENGINE is set to be a File appender using a PatternLayout.
log4j.appender.LOGFILE_ENGINE=org.apache.log4j.RollingFileAppender
log4j.appender.LOGFILE_ENGINE.File=${catalina.home}/logs/file1.log
log4j.appender.LOGFILE_ENGINE.Append=true
log4j.appender.LOGFILE_ENGINE.maxBackupIndex=5
log4j.appender.LOGFILE_ENGINE.maxFileSize=10MB
log4j.appender.LOGFILE_ENGINE.Threshold=INFO
log4j.appender.LOGFILE_ENGINE.layout=org.apache.log4j.PatternLayout
log4j.appender.LOGFILE_ENGINE.layout.ConversionPattern=%d{MMM dd, yyyy hh:mm:ss.SSS a} %-5p %c - %m%n
log4j.appender.SYNC_HANDLER=org.apache.log4j.RollingFileAppender
log4j.appender.SYNC_HANDLER.File=${catalina.home}/logs/file2.log
log4j.appender.SYNC_HANDLER.Append=true
log4j.appender.SYNC_HANDLER.maxBackupIndex=5
log4j.appender.SYNC_HANDLER.maxFileSize=10MB
log4j.appender.SYNC_HANDLER.Threshold=DISASTER#PackageName.className
log4j.appender.SYNC_HANDLER.layout=org.apache.log4j.PatternLayout
log4j.appender.SYNC_HANDLER.layout.ConversionPattern=%d{MMM dd, yyyy hh:mm:ss.SSS a} %-5p %c - %m%n
DISASTER#PackageName.className 是我通过扩展org.apache.log4j 的Level 类制作的自定义级别
我的问题 1. 来自 file2.log 的日志消息在 file1.log 文件中重复出现。
2. 是否可以通过 log4j 进行基于类的日志记录。
不用说我对Log4j....很幼稚。
【问题讨论】:
标签: java logging log4j rollingfileappender