log4j:一个类; 同一水平; 两个输出文件

Boi*_*ill 2 java log4j

我似乎没有收到任何INFO级别的消息到Additions.log或Deletions.log,即使我看到日志行在调试器中执行.这是我的log4j.properties文件:

log4j.file.home=.

log4j.rootLogger=INFO, dest1
log4j.rootCategory=INFO, dest1
log4j.logger.org.hibernate=ERROR

log4j.category.dest1=INFO
log4j.appender.dest1=org.apache.log4j.ConsoleAppender
log4j.appender.dest1.layout=org.apache.log4j.PatternLayout
log4j.appender.dest1.layout.ConversionPattern=%-22d{dd/MMM/yyyy HH:mm:ss} %-8p %c [%t] - %m (%l)%n

#Log items that are being added
log4j.logger.Additions=INFO
log4j.additivity.Additions=false
log4j.appender.Additions=org.apache.log4j.RollingFileAppender
log4j.appender.Additions.File=${log4j.file.home}/Additions.log
log4j.appender.Additions.MaxFileSize=10000KB
log4j.appender.Additions.MaxBackupIndex=10
log4j.appender.Additions.layout=org.apache.log4j.PatternLayout
log4j.appender.Additions.layout.ConversionPattern=%-22d{dd/MMM/yyyy HH:mm:ss} %-8p %c [%t] - %m (%l)%n

#Log items that are being removed
log4j.logger.Deletions=INFO
log4j.additivity.Deletions=false
log4j.appender.Deletions=org.apache.log4j.RollingFileAppender
log4j.appender.Deletions.File=${log4j.file.home}/Deletions.log
log4j.appender.Deletions.MaxFileSize=10000KB
log4j.appender.Deletions.MaxBackupIndex=10
log4j.appender.Deletions.layout=org.apache.log4j.PatternLayout
log4j.appender.Deletions.layout.ConversionPattern=%-22d{dd/MMM/yyyy HH:mm:ss} %-8p %c [%t] - %m (%l)%n 
Run Code Online (Sandbox Code Playgroud)

这是从课堂上获取我的记录器:

private static Logger addLog = Logger.getLogger("Additions");
private static Logger deleteLog = Logger.getLogger("Deletions");
Run Code Online (Sandbox Code Playgroud)

我还需要解决哪些问题来解决这个问题?

ska*_*man 6

你把记录器与Appender混淆了.您已经定义了名为Additions和Deletions的Loggers,并且您已经定义了具有相同名称的Appender,但您需要将这两者相关联.仅仅给它们相同的名字是不够的.

我建议你将appender重命名为与Loggers不同,以避免这种混淆.然后,您需要将追加器分配给Loggers,如下所示:

log4j.logger.Additions=INFO, Additions
log4j.logger.Deletions=INFO, Deletions
Run Code Online (Sandbox Code Playgroud)

最后,我建议您考虑从属性格式转换为XML格式.在我看来,它的可读性非常高,并且显而易见的是其他所有内容以及结构是什么.