Log4j消息包含(?:method:?)而不是类名

时间:2011-03-29 00:28:37

标签: java log4j

我的log4j消息不包括类名:

[INFO] 22:41 (?: decodeDirectory :?)

知道为什么会这样吗?

log4j.properties如下所示:

log4j.rootLogger=INFO, logfile, console

log4j.appender.logfile=org.apache.log4j.RollingFileAppender
log4j.appender.logfile.File=ExifImageRA.log
log4j.appender.logfile.MaxFileSize=1MB
log4j.appender.logfile.MaxBackupIndex=1
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern=[%5p] %d{mm:ss} (%F:%M:%L)%n%m%n%n

log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=[%5p] %d{mm:ss} (%F:%M:%L)%n%m%n%n

1 个答案:

答案 0 :(得分:1)

看起来日志消息中实际缺少的是源文件名(%F)和行号(%L)。

  • 根据javac Ant任务:debug属性“[i]指定是否应使用调试信息编译源;默认为关闭。如果设置为off, -g:none将在命令行上传递...“

  • 根据javac手册,如果使用.class进行编译,则会从javac -g:none文件中省略源文件名和行号。

因此,您的日志消息丢失是从Ant构建文件中的debug="true"任务中删除javac的直接后果。