लॉग 4j का उपयोग करके एकाधिक लॉग फ़ाइलों को लिखते समय मुझे डुप्लिकेट लॉग संदेशों में समस्या हो रही है।लॉग 4j: एकाधिक लॉगर्स, स्तर और परिशिष्ट
वर्तमान में मैं अपने foo.log
फ़ाइल में foobar नामित विशिष्ट लकड़हारा के लिए INFO
स्तर डेटा (और ऊपर की तरफ) लॉग इन करने की कोशिश कर रहा हूँ और फिर सभी WARN
स्तर लॉग संदेश (और ऊपर की तरफ) bar.log
फ़ाइल में सभी वालों के लिए ।
इसके परिणामस्वरूप, डुप्लिकेट लॉग संदेश foo.log
फ़ाइल (प्रत्येक पंक्ति को दो बार लॉग किया गया था) पर लिखा गया था और कुछ त्वरित शोध के बाद मुझे पता चला कि इसे ठीक करने के सुझाव को मेरी गुण फ़ाइल में log4j.additivity.foobar=false
जोड़ना था।
इस के साथ समस्या यह है कि हालांकि यह डुप्लिकेट लाइनों बंद हो जाता है, foobar लकड़हारा से WARN
संदेश bar.log
फाइल करने के लिए कभी नहीं लिखा जाता है।
मेरे log4j गुण फ़ाइल इस प्रकार है:
log4j.rootLogger = WARN, FOO, BAR
log4j.logger.foobar = INFO, FOO
log4j.additivity.foobar = false
log4j.appender.FOO = org.apache.log4j.RollingFileAppender
log4j.appender.FOO.layout = org.apache.log4j.PatternLayout
log4j.appender.FOO.layout.ConversionPattern = %d{ISO8601} %-5p %c ~ %m%n
log4j.appender.FOO.File = foo.log
log4j.appender.BAR = org.apache.log4j.RollingFileAppender
log4j.appender.BAR.layout = org.apache.log4j.PatternLayout
log4j.appender.BAR.layout.ConversionPattern = %d{ISO8601} %-5p %c ~ %m%n
log4j.appender.BAR.File = bar.log
किसी को भी पता है कि कैसे मैं दोनों लॉग फाइल करने के लिए लॉग संदेश लिखने जा सकता है (इससे पहले कि मैं additivity
संपत्ति की स्थापना शुरू कर दिया के रूप में यह कर रहा था) और अभी भी डुप्लिकेट लॉग संदेशों को रोकें?
कृपया ध्यान दें, यह समस्या का एक सरल सारांश है। असली दुनिया परिदृश्य में कई लॉगर्स हैं और दो से अधिक लॉग फाइलें हैं
यह सब अच्छा है और अच्छी तरह है, लेकिन यह क्या नहीं कहा गया था है। यह लॉगर्स द्वारा अंतर कैसे करता है? मूल प्रश्न में कहा गया है कि केवल 'foobar' foo पर जाता है, और foobar समेत सभी लॉगर्स –
पर जाते हैं प्रश्न एक समाधान के लिए पूछता है जहां' foobar' logger के लिए सभी 'INFO' संदेश' foo.log' फ़ाइल 'पर जाते हैं और सभी ' सभी लॉगर्स के लिए WARN' संदेश 'bar.log' फ़ाइल पर जाते हैं (और यह भी कि प्रत्येक लॉग संदेश केवल उचित फ़ाइल में लिखा जाता है)। –
नहीं, __all loggers__, न केवल 'foobar' 'bar.log' पर भेजा जाता है। प्रश्न के अनुसार: "वर्तमान में मैं अपने foo.log फ़ाइल में 'foobar' नामक विशिष्ट लॉगर के लिए' INFO' स्तर डेटा और बार में __all loggers__ के लिए सभी 'WARN' स्तर लॉग संदेश लॉग इन करने का प्रयास कर रहा हूं। लॉग फ़ाइल।" –