java项目中的log4j在单击转换字符的链接时显示错误的文件

java项目中的log4j在单击转换字符的链接时显示错误的文件,java,log4j,Java,Log4j,我在Eclipse中创建了一个Java6项目,它使用log4j将调试信息输出到控制台。我们称之为项目1。没问题。然后我将文件夹的全部内容复制到一个新文件夹中(显然,这不是一个好主意)。然后,我将现有项目导入工作区。我们称之为项目2。当我运行Project2时,我会看到调试语句输出到控制台。我使用了一个包含(%F:%L)的转换模式,因此我可以单击该链接,Eclipse将带我访问该文件和行号。 问题是:当我单击控制台中的链接时,Eclipse会将我带到Project1中的文件,而不是Project2

我在Eclipse中创建了一个Java6项目,它使用log4j将调试信息输出到控制台。我们称之为项目1。没问题。然后我将文件夹的全部内容复制到一个新文件夹中(显然,这不是一个好主意)。然后,我将现有项目导入工作区。我们称之为项目2。当我运行Project2时,我会看到调试语句输出到控制台。我使用了一个包含(%F:%L)的转换模式,因此我可以单击该链接,Eclipse将带我访问该文件和行号。 问题是:当我单击控制台中的链接时,Eclipse会将我带到Project1中的文件,而不是Project2中的文件。当我通过复制Project1创建Project2时,我显然遇到了一些问题。解决此问题的唯一方法(到目前为止)是重命名包含logger.debug语句的类文件。我宁愿解决更大的问题。我已经在谷歌上搜索了这个,并在这个网站上浏览了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)。%之前的空格是必需的,因为它将尝试将打开的参数添加到链接。

使用%l而不是(%F:%l)模式使用%l。单击链接%l时获得“未找到源…”没有任何区别。获取了一个长得多的包含包和类信息的链接,但仍然在Project1中打开了错误的文件。%l毕竟工作正常。我没有把空格放在百分号之前代码'log4j.appender.stdout.layout.ConversionPattern=%5p%l-%m%n