2012-08-13 15 views
5

मैं this example चलाने की कोशिश कर रहा हूं, लेकिन मुझे कॉन्फ़िगरेशन के साथ कुछ समस्याएं हैं।ग्रहण में 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 के साथ कंसोल में मुझे

0 मिला
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. एक्लिप्स में कॉन्फ़िगरेशन फ़ाइल कैसे सेट करें? PropertyConfigurator.configure("log4j-jms.properties"); का उपयोग किए बिना? उदाहरण के लिए इस तरह की कोई रेखा नहीं है।

उत्तर

10

आपका log4j.propertiessrc फ़ोल्डर के अंदर होनी चाहिए। इस तरह, लॉग 4 जे कोड लिखने की आवश्यकता के बिना स्वचालित रूप से स्वयं को कॉन्फ़िगर करेगा।

+1

मैंने इस फ़ाइल को स्थानांतरित किया और वीएम तर्कों में '-Dlog4j.configuration = log4j-jms.properties' जोड़ा। अब काम करता है, धन्यवाद। – alicjasalamon

+0

आपको 'log4j-jms.properties' क्यों चाहिए? आपको इसकी आवश्यकता नहीं है। log4j.properties' लॉग 4 जे के लिए सिस्टम डिफ़ॉल्ट कॉन्फ़िगरेशन प्रॉपर्टी है। –

+0

मैंने अपने प्रश्न में गलती की है। मैंने अपनी फाइल 'log4j-jms.properties' नाम दिया है, वहां कोई' log4j.properties' नहीं है। मैं इसका नाम बदल सकता हूं, लेकिन यह ठीक काम करता है। – alicjasalamon

1

आपकी परियोजना संरचना के अनुसार, कोई log4j-jms.properties नहीं है। Log4j.properties है। तो अपने log4j गुण फ़ाइल नाम बदलें।

2
  1. आयात के बारे में कुछ भी नहीं है;

  2. यह फ़ाइल स्थान के बारे में नहीं है, जैसा कि आप यह संदेश देखते हैं "log4j: WARN कोई एपेंडर लॉगजर के लिए नहीं मिल सका ...", तो कृपया अपनी log4j कॉन्फ़िगरेशन फ़ाइल की सामग्री जांचें।

    log4j.rootLogger = जानकारी, 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' की प्रतिलिपि बनाई है, इसलिए यह ठीक काम करता है। वीएम को अतिरिक्त तर्क जोड़ने के बाद, मुझे कोई चेतावनी नहीं मिलती है। – alicjasalamon

संबंधित मुद्दे