2012-08-13 2 views
5

this example을 실행하려고하는데 구성에 문제가 있습니다. Eclipse에서 log4j.properties를 설정하는 방법은 무엇입니까?

나는 내 콘솔에서 log4j-jms.properties, jndi.properties, Log4jJMSAppenderExample.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"); 

을 추가 가지고 내 예제를 실행하면

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.propertiessrc 폴더 안에 있어야합니다. 그렇게하면 Log4J는 자동으로 코드를 작성할 필요없이 자동으로 구성됩니다.

+1

이 파일을 옮기고 VM 인수에'-Dlog4j.configuration = log4j-jms.properties'가 추가되었습니다. 고마워. – alicjasalamon

+0

왜'log4j-jms.properties'가 필요한가요? 너는 이것을 전혀 필요로하지 않는다. 'log4j.properties'는 Log4J의 시스템 기본 설정 속성입니다. –

+0

제 질문에 실수를했습니다. 내 파일'log4j-jms.properties'의 이름을'log4j.properties'가 아닙니다. 이름을 바꿀 수는 있지만 괜찮습니다. – alicjasalamon

1

프로젝트 구조에 따르면 log4j-jms.properties는 없습니다. log4j.properties가 있습니다. 그래서 log4j 특성 파일 이름을 변경하십시오.

2
  1. 수입품에 대해서는 아무 것도 없습니다.

  2. "log4j : WARN 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 폴더에 저장하십시오.

+0

내가 말했듯이. 튜토리얼에서'log4j.properties'를 복사 했으므로 OK입니다. VM에 추가 인수를 추가 한 후 경고 메시지가 표시되지 않습니다. – alicjasalamon

관련 문제