2012-08-13 52 views
5

我試圖運行this example,但我在配置時遇到了一些問題。如何在Eclipse中設置log4j.properties?

我在控制檯複製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");?在我的例子中沒有像這樣的行。

回答

10

您的log4j.properties應該位於src文件夾內。這樣,Log4J會自動進行自我配置,而無需編寫代碼。

+1

我移動了這個文件,並在VM參數中添加了'-Dlog4j.configuration = log4j-jms.properties'。現在就工作,謝謝。 – alicjasalamon 2012-08-13 08:58:06

+0

爲什麼你需要'log4j-jms.properties'?你根本不需要這個。 'log4j.properties'是Log4J的系統默認配置屬性。 – 2012-08-13 08:59:39

+0

我在我的問題中犯了一個錯誤。我將文件命名爲'log4j-jms.properties',沒有'log4j.properties'。我可以重命名它,但它工作正常。 – alicjasalamon 2012-08-13 09:05:16

1

根據您的項目結構,沒有log4j-jms.properties.There是log4j.properties。所以改變你的log4j屬性文件名。

2
  1. 沒有關於進口;

  2. 這不是關於文件位置,因爲您看到此消息「log4j:WARN沒有找到記錄器的appender ...」,所以請檢查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文件夾中。

+0

正如我所說的。我從教程中複製了'log4j.properties',所以它工作正常。向VM添加額外的參數後,我不會收到警告。 – alicjasalamon 2012-08-13 09:03:13