Java 在包级别上选择文件日志记录级别
我有几个日志文件Java 在包级别上选择文件日志记录级别,java,log4j,Java,Log4j,我有几个日志文件logfile和debugLogFile。多了一个调试信息,少了一个,但仍然需要一些。在未来,我希望有第三个文件与信息量之间的东西这两个 我要求log4j将包MyPck记录在INFO级别。这是我需要的日志文件。但是对于debugLogFile,我需要为MyPck设置DEBUG级别。这是一个问题 logFile和debugLogFile都具有Threshold=ALL。我需要有可能在每个日志文件中写入所有级别信息。例如logfile将包含MyPck的DEBUG级别和MyPck1的I
logfile
和debugLogFile
。多了一个调试信息,少了一个,但仍然需要一些。在未来,我希望有第三个文件与信息量之间的东西这两个
我要求log4j
将包MyPck
记录在INFO
级别。这是我需要的日志文件
。但是对于debugLogFile
,我需要为MyPck
设置DEBUG
级别。这是一个问题
logFile
和debugLogFile
都具有Threshold=ALL
。我需要有可能在每个日志文件中写入所有级别信息。例如logfile
将包含MyPck
的DEBUG
级别和MyPck1
的INFO
,debugLogFile
将包含MyPck
的INFO
级别和MyPck1
的DEBUG
。如何解决这个问题
log4j.rootLogger=ALL, logfile, debugLogFile
log4j.logger.MyPck=INFO
log4j.appender.logfile=org.apache.log4j.RollingFileAppender
log4j.appender.logfile.File=logFile.log
log4j.appender.logfile.Threshold=ALL
log4j.appender.debugLogFile=org.apache.log4j.RollingFileAppender
log4j.appender.debugLogFile.File=debugLogFile.log
log4j.appender.debugLogFile.Threshold=ALL
这将使您朝着正确的方向前进:
log4j.rootLogger=TRACE, defaultFile
log4j.appender.defaultFile=org.apache.log4j.RollingFileAppender
log4j.appender.defaultFile.File=defaultFile.log
log4j.appender.logfile=org.apache.log4j.RollingFileAppender
log4j.appender.logfile.File=logFile.log
log4j.appender.debugLogFile=org.apache.log4j.RollingFileAppender
log4j.appender.debugLogFile.File=debugLogFile.log
log4j.logger.MyPck=DEBUG,logFile
log4j.logger.MyPck1=INFO,logFile
log4j.logger.MyPck=INFO,debugLogFile
log4j.logger.MyPck1=DEBUG,debugLogFile
log4j.additivity.MyPck=false
log4j.additivity.MyPck1=false
log4j.additivity.MyPck=false
设置确保MyPck的输出不会出现在rootLogger appender中。当您将MyPck
的日志级别设置为INFO
时,您实际上将此包的阈值设置为INFO
,即不会发出低于该级别的消息
因此,需要将包的阈值设置为要记录的最低公共级别
下一步是配置记录器的阈值,以过滤掉您不想要的任何消息:
log4j.rootLogger=ALL, logfile, debugLogFile
log4j.logger.MyPck=DEBUG
log4j.appender.logfile=org.apache.log4j.RollingFileAppender
log4j.appender.logfile.File=logFile.log
log4j.appender.logfile.Threshold=INFO
log4j.appender.debugLogFile=org.apache.log4j.RollingFileAppender
log4j.appender.debugLogFile.File=debugLogFile.log
log4j.appender.debugLogFile.Threshold=DEBUG
请注意,第二个appender获取第一个appender的所有消息的副本。在本例中,日志文件保持为空。详情请参阅