【问题标题】:Getting log4j2 to work with eclipse让 log4j2 与 eclipse 一起工作
【发布时间】:2013-07-30 11:23:43
【问题描述】:

我知道有人对此提出了很多问题,但几天来我一直在努力让它发挥作用,而且当我开始时我不再向前了。

我尝试在 eclipse vm 参数中使用 -Dlog4j.configuration=file:/path/to/log4j.properties-Dlog4j.debug(在调试和运行下)并且没有得到任何输出

我曾尝试使用 .properties 和 .xml,但没有任何乐趣

尝试将 .xml 和 .properties 文件放在根目录、src 和我添加到类路径的外部文件夹中......仍然没有乐趣

我认为它在另一个 lib/jar 中使用了另一个 .xml 或 .properties 文件,但是因为我无法进行任何调试工作,我发现很难跟踪我在这里做错了什么......

任何帮助都会很棒!下面是代码.. 只打印错误消息。

我已经下载 (http://logging.apache.org/log4j/2.x/download.html) 并导入到我的应用中 log4j-api-2.0-beta8.jar log4j-core-2.0-beta8

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

public class CucmServMonitor 
{
 private static final Logger logger  = LogManager.getLogger(CucmServMonitor.class.getName())
  public static void main(String[] args) 
  {
    logger.error("testing ERROR level");
    logger.trace("exiting application");
    System.out.println(logger.getName());   
  }
}

我刚才使用的xml文件log4j2.xml

<?xml version="1.0" encoding="UTF-8"?>
 <configuration status="WARN">
  <appenders>
   <Console name="Console" target="SYSTEM_OUT">
    <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
   </Console>
  </appenders>
 <loggers>
  <root level="debug">
   <appender-ref ref="Console"/>
  </root>
 </loggers>
</configuration>

【问题讨论】:

标签: java eclipse log4j


【解决方案1】:

1) 在根文件夹内创建 log4j.properties 文件

log4j.rootCategory=DEBUG, CONSOLE

# Appender writes to console
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.Threshold=INFO
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n

2) 像这样修改代码

import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator;
public class CucmServMonitor {
    private static final Logger logger = Logger.getLogger(CucmServMonitor.class);
    public static void main(String[] args) {
        PropertyConfigurator.configure("log4j.properties"); 
        logger.error("testing ERROR level");
        logger.trace("exiting application");
        System.out.println(logger.getName());  
    }
}

【讨论】:

  • 感谢您的回复。也许这是我遇到的问题,但是对于我导入的 jar 文件,我只能使用以下导入语句import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger;
【解决方案2】:

设法弄清楚这一点。提示就在这里。

http://pic.dhe.ibm.com/infocenter/wasinfo/v6r0/index.jsp?topic=%2Forg.eclipse.jdt.doc.user%2Ftasks%2Ftasks-112.htm

我需要添加 log4j2.xml 所在位置的“类文件夹”,然后确保它位于列表的顶部:

右键单击您的项目并转到属性

然后按照如下所示的步骤进行操作。添加文件夹后,确保它在顶部,然后单击确定

【讨论】:

    【解决方案3】:

    或者...只需创建一个资源目录,如 src/test/resources 并将 log4j.xml 文件添加到该目录,然后将该目录设为源文件夹。然后 eclipse 会自动将文件复制到 classes 目录,然后就可以了。

    【讨论】:

      【解决方案4】:

      根据 Alexis 的评论,我设置了它,但 eclipse 仍然找不到 log4j2.xml。最后,我通过删除其他导入的 jar 来解决它,只保留 log4j-api 和 log4j-core。在我导入从 Apache 网站下载的所有 jar 之前。希望这可以帮助某人。

      【讨论】:

        【解决方案5】:

        根据 Alexis 的评论,我设置了它,但 eclipse 仍然找不到log4j2.xml。最后,我通过删除其他导入的 jar 来解决它,只保留 log4j-apilog4j-core。在我导入从 Apache 网站下载的所有 jar 之前。

        我为log4j-&gt;log4j2 版本升级解决了我的项目。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-04-08
          • 2014-11-22
          • 2014-01-25
          • 2010-10-16
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2010-09-12
          相关资源
          最近更新 更多