【问题标题】:How to set log4j.properties in Eclipse?如何在 Eclipse 中设置 log4j.properties?
【发布时间】:2012-08-09 11:08:18
【问题描述】:

我正在尝试运行this example,但我在配置方面遇到了一些问题。

我复制了log4j-jms.propertiesjndi.propertiesLog4jJMSAppenderExample.java

ProjectJMS
|
\_ src
|   \_ Log4jJMSAppenderExample.java
|   \_ jndi.propeties
\_ log4j-jms.properties

并在我的控制台中运行activemq

当我运行我的示例时,我得到了

log4j:WARN No appenders could be found for logger (org.apache.activemq.transport.WireFormatNegotiator).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.`PropertyConfigurator.configure("log4j-jms.properties");`

所以我加了

PropertyConfigurator.configure("log4j-jms.properties");

现在我可以在 Eclipse 控制台中看到日志,但仍然出现此警告

log4j:WARN No appenders could be found for logger (org.apache.activemq.transport.WireFormatNegotiator).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
2012-08-13 10:21:44,741 INFO  Log4jJMSAppenderExample - Test log
Received log [INFO]: Test log

在控制台中使用activemq 我得到了

 WARN | Transport Connection to: tcp://127.0.0.1:2005 failed: java.net.SocketException: Connection reset

为什么我会收到这些警告?

  1. 我的导入有误吗?

    import javax.jms.Connection;
    import javax.jms.Message;
    import javax.jms.MessageConsumer;
    import javax.jms.MessageListener;
    import javax.jms.Session;
    
    import org.apache.activemq.ActiveMQConnectionFactory;
    import org.apache.activemq.command.ActiveMQObjectMessage;
    import org.apache.log4j.Logger;
    import org.apache.log4j.PropertyConfigurator;
    import org.apache.log4j.spi.LoggingEvent;
    
  2. 我的文件放错地方了吗?

  3. 如何在 Eclipse 中设置配置文件?不使用PropertyConfigurator.configure("log4j-jms.properties");?在我遵循的示例中没有这样的行。

【问题讨论】:

    标签: java log4j jms appender


    【解决方案1】:
    1. 没有关于导入的内容;

    2. 这与文件位置无关,因为您看到此消息“log4j:WARN No appenders could be found for logger...”,因此请检查您的 log4j 配置文件的内容。这是一个演示:

      log4j.rootLogger=INFO,myConsoleAppender log4j.appender.myConsoleAppender=org.apache.log4j.ConsoleAppender log4j.appender.myConsoleAppender.layout=org.apache.log4j.PatternLayout log4j.appender.myConsoleAppender.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n

    3. 默认的 log4j 配置文件是“log4j.properties”,正如有人所说,它应该放在src 文件夹中。

    【讨论】:

    • 如我所说。我从教程中复制了log4j.properties,所以它工作正常。向 VM 添加其他参数后,我没有收到任何警告。
    【解决方案2】:

    您的log4j.properties 应位于src 文件夹中。这样,Log4J 将自动配置自己,无需您编写代码。

    【讨论】:

    • 我移动了这个文件并在 VM 参数中添加了-Dlog4j.configuration=log4j-jms.properties。现在可以使用了,谢谢。
    • 为什么需要log4j-jms.properties?你根本不需要这个。 log4j.properties 是 Log4J 的系统默认配置属性。
    • 我的问题有误。我将我的文件命名为log4j-jms.properties,没有log4j.properties。我可以重命名它,但它工作正常。
    • 不过,如果系统范围的 Log4J 默认属性有效,则无需创建另一个属性文件。
    • @BuhakeSindi - 你能帮我解决一个相关问题吗 - stackoverflow.com/questions/23278607/…
    【解决方案3】:

    根据你的项目结构,没有log4j-jms.properties。有log4j.properties。所以改变你的 log4j 属性文件名。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-19
      • 1970-01-01
      • 2012-06-08
      • 2011-01-17
      • 2023-03-10
      • 1970-01-01
      相关资源
      最近更新 更多