2009-04-01 16 views
5

जब मेरे OSGi वेब का उपयोग कर equinox servlet bridge मैं निम्नलिखित प्राप्त आवेदन की तैनाती:Equinox Servle Bridge के साथ ओमजी ऐप को टॉमकैट में तैनात करते समय Log4J को कॉन्फ़िगर कैसे करें?

  • संदर्भ-जोड़ने:

    log4j:WARN No appenders could be found for logger (org.springframework.osgi.extender.internal.activator.ContextLoaderListener). 
    log4j:WARN Please initialize the log4j system properly. 
    

    मैं आवश्यक "log4j.properties" की आपूर्ति करने के कई तरीके फ़ाइल, सहित करने की कोशिश की सर्वो "पुल 4jConfigLocation" सर्वलेट ब्रिज web.xml

  • वेब-आईएनएफ फ़ोल्डर में एक फ़ोल्डर "कक्षाएं" बनाना और मेरी log4j.properties फ़ाइल को कॉपी करना (और इसे कई अन्य स्थानों में कॉपी करना)
  • मेरे log4j बंडल को हटाने और "expandframeworkExports" को org.apache.log4j पर सेट करने के लिए (मुझे लगता है) tomcat log4j का उपयोग किया जाता है ... यह काम नहीं करता है क्योंकि मेरी निर्भरताओं को कुछ slf4j कक्षाओं की आवश्यकता होती है जो log4j बंडल के लिए एक खंड के रूप में प्रदान की जाती हैं ... जो अब वहां नहीं है ...
बेशक

मैं भी एक टुकड़ा बंडल जो एक log4j.properties फ़ाइल के साथ log4j बंडल फैली है, लेकिन इस तरह log4j बंडल नहीं किया जाता है यह लग रहा है।

जोड़ा गया: मुझे यह जोड़ना चाहिए कि मैं ग्रहण में आवेदन विकसित कर रहा हूं ... और मेरा टुकड़ा बंडल जो log4j/slf4j को कॉन्फ़िगर करता है वहां काम करता है।

क्या किसी ने इसे हल किया है? कोई विचार?

उत्तर

3

मुझे मेरी त्रुटि मिली। जो टुकड़ा log4j.properties फ़ाइल प्रदान करना चाहिए उसे इसमें शामिल नहीं किया गया था, क्योंकि मैंने इसे build.properties में बाइनरी बिल्ड में नहीं जोड़ा है।

2

अद्यतन: यह वास्तव में अपनी समस्या के साथ मदद नहीं करता है ...

मैं सिर्फ OSGi अपने आप पर शोध कर रहा हूँ।

जो कुछ आप खोज रहे हैं, उतना ही नहीं, लेकिन निम्नलिखित post वेनिला विषुव (यानी: टोमकैट/जेट्टी के भीतर होस्ट नहीं किए जाने पर) एक ही समस्या पर चर्चा करता है।

यह आपके log4j.properties को पकड़ने के लिए 'खंड बंडल' (उदाहरण के लिए उपलब्ध उदाहरण) बनाने का सुझाव देता है। शायद आप कुछ ऐसा करने की कोशिश कर सकते हैं?

या शायद आपको log4j.properties को अपने WAR के META-INF के अंदर रखने की आवश्यकता है?

+0

1. जब आप अपने आवेदन को टॉमकैट में एक .war के रूप में तैनात करते हैं तो आमतौर पर आप जो टुकड़ा बंडल दृष्टिकोण लेते हैं वह स्पष्ट रूप से काम नहीं करता है। 2. मेरे युद्ध में अभी तक मेटा-आईएनएफ फ़ोल्डर नहीं था, लेकिन मैंने कोशिश की और यह भी काम नहीं करता है (मैंने वेब-आईएनएफ, वेब-आईएनएफ/ग्रहण, जैसे सभी मौजूदा फ़ोल्डर्स को आजमाया है ...) – arturh

+0

खेद है कि मैं और मदद नहीं कर सका .. – toolkit

3

धन्यवाद arturh। मेरी भी यही समस्या थी। मैंने log /j.properties को मेरे/src फ़ोल्डर में जोड़ा।

+1

इसके बाद, मेरे पास एक बाद का मुद्दा था, जबकि मेरे एप्लिकेशन बंडल लॉग 4j कॉन्फ़िगरेशन खंड सफलतापूर्वक लॉगिंग कर रहे थे, अन्य बंडल नहीं थे। समाधान यह सुनिश्चित करना था कि उन बंडलों में org.apache.log4j उनके "आयात-पैकेज:" विशेषता में था, भले ही उन्हें संकलन के लिए आयात की स्पष्ट रूप से आवश्यकता न हो। फिर उन्होंने log4j.properties फ़ाइल को टुकड़े के माध्यम से पाया, log4j बंडल द्वारा होस्ट किया गया। – nevh

+0

टिप के लिए धन्यवाद! खुशी है कि मैं सहायता का हो सकता है। – arturh