मैं एक कान log4j2.xml logPathlog4j2 लॉगिंग गलत पथ में हो रहा
<Property name="logPath">some_path_1<Property>
के रूप में स्थापित है और एक लकड़हारा इस कान/lib वहाँ अंदर
<Logger name="a.b.c.d" level="INFO" />
के रूप में परिभाषित साथ weblogic में तैनात है है एक जार एक log4j2.xml और logPath संपत्ति युक्त
<Property name="logPath">some_path_2<Property>
के रूप में एक बहुत ही simil के साथ एक लकड़हारा परिभाषित किया गया है आर पैकेजिंग संरचना
<Logger name="a.b.c" level="INFO" />
दोनों log4j2.xml के पास एक अलग लॉग फ़ाइल नाम भी कॉन्फ़िगर किया गया है। लेकिन दोनों के लिए लॉग कुछ_पैथ_2 पथ में आ रहे हैं और उस जार
परिभाषित करने के लिए लॉगिंग आउटपुट दोनों अलग-अलग होते हैं?
मेरे कान संरचना
ear
|--lib
|--|--abc.jar
|--|--|--log4j2.xml //the one thats getting loaded
|--xyz.war
|--|--WEB-INF
|--|--|--classes
|--|--|--|--log4j2.xml // the one I want
Edit1 की तरह है: मैं युक्त युद्ध के web.xml में निम्नलिखित जोड़ा है, लेकिन यह मदद नहीं की
<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>/WEB-INF/classes/log4j2.xml</param-value>
</context-param>
EDIT2: मैं भी इस की कोशिश की और पाया गया कि इस विन्यास का उपयोग करके केवल एक बार रुक-रुक कर
ear
|--lib
|--|--abc.jar
|--|--|--log4j2.xml //the one thats getting loaded
|--|--xyz.jar
|--|--|--log4j2.xml //the one I want.. works but not always.Does classloader loads the jars alphabetically?
|--xyz.war
|--|--WEB-INF
|--|--|--classes
|--|--|--|--log4j2.xml // the one I want
मुझे लगता है कि आप log4j2 मॉड्यूल को classpath में log4j2 कॉन्फ़िगरेशन फ़ाइल खोजने के लिए दे रहे हैं। तो, जो भी जार पर आधारित है, निर्देशिका पहले लोड हो जाती है कॉन्फ़िगरेशन फ़ाइल लोड हो जाती है। संभावित रूप से, आप एक तर्क के रूप में '-Dlog4j.configurationFile = path/to/log4j2.xml' कर सकते हैं। यदि यह संभव नहीं है, प्रोग्रामेटिक रूप से log4j को किसी विशिष्ट पथ में ढूंढने दें। – Andrews
"यह सुनिश्चित करने के लिए कि लॉगिंग आउटपुट दोनों परिभाषित के रूप में अलग-अलग होते हैं?" एकाधिक विन्यास फाइलों के लिए कोई समर्थन नहीं है। आपको कॉन्फ़िगरेशन मैन्युअल रूप से मर्ज करना होगा, फिर आपको या तो एंड्रॉइड के रूप में संपत्ति के साथ उपयोग करने के लिए log4j2.xml निर्दिष्ट करना होगा या आपको यह सुनिश्चित करना होगा कि क्लासपाथ में केवल एक log4j2.xml है। – alan7678