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

标签 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

最佳答案

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

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

  • 根据javac手册,如果使用javac -g编译,.class文件中将省略源文件名和行号:无

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

关于java - Log4j 消息包含 (? :method:? ) 而不是类名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5466594/

相关文章:

java - 如何将所有日志从 hibernate 和 spring 重定向到 log4j2?

Java SimpleDateFormat 总是返回一月份的月份

java - 如何改变这个按钮的 float ?

java - 使用 Apache POI 创建新工作表会删除所有现有工作表

java - 如何使用 RollingFileAppender 将日期附加到日志文件名

java - NoClassDefFoundError : org/apache/log4j/Logger

java - spring mvc登录的base64编码

java - RSA OAEP , Golang 解密 , Java 加密

java - 我在哪里可以在 JUnit 测试类中配置 log4j?

java - 由 XPages 中的 : java. lang.NoClassDefFoundError: org/apache/log4j/Logger 引起