我在 Eclipse 中创建了一个 Java 6 项目,它使用 log4j 将调试信息输出到控制台。我们将此称为 Project1。没问题。然后我将该文件夹的全部内容复制到一个新文件夹中(显然,这不是一个好主意)。然后,我将现有项目导入到工作区中。我们将其称为 Project2。当我运行 Project2 时,我看到调试语句的输出到控制台。我使用了包含 (%F:%L) 的 ConversionPattern,因此我可以单击链接,Eclipse 将带我到该文件和行号。 问题是:当我单击控制台中的链接时,Eclipse 将我带到 Project1 中的文件,而不是 Project2 中。当我通过复制 Project1 创建 Project2 时,显然有些交叉。解决这个问题的唯一方法(到目前为止)是重命名包含 logger.debug 语句的类文件。我宁愿解决更大的问题。我用 Google 搜索了这个并浏览了该网站上的 log4j 帖子,但找不到解决方案。下面是 log4j.properties 文件。任何帮助将不胜感激。
log4j.rootLogger=debug, stdout, R
# log4j.rootLogger=error, stdout, R
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
# Pattern to output the caller's file name and line number.
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n
log4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.R.File=RevIC.log
log4j.appender.R.MaxFileSize=500KB
# Keep one backup file
log4j.appender.R.MaxBackupIndex=1
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n
最佳答案
使用(%l)。 % 之前的空格是必需的,因为它会尝试将左括号添加到链接中。
关于java - 单击转换字符中的链接时,java 项目中的 log4j 显示错误的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9588580/