2015-01-16 9 views
13

कॉन्फ़िगर करते समय प्रिंट करें, मैं किसी भी XML कॉन्फ़िगरेशन फ़ाइल का उपयोग नहीं कर रहा हूं, बल्कि मैं लॉगर कॉन्फ़िगरेशन प्रोग्रामेटिक रूप से सेट कर रहा हूं। लॉगर सही तरीके से काम करता है लेकिन जब मैं नीचे दिए गए कोड की पहली पंक्ति कहता हूं, तो एक चेतावनी ERROR संदेश मुझे यह बताने के लिए दिखाता है कि कॉन्फ़िगरेशन फ़ाइल नहीं मिली और डिफ़ॉल्ट कॉन्फ़िगरेशन का उपयोग किया जाएगा।LOG4J2: "कोई log4j2 कॉन्फ़िगरेशन फ़ाइल नहीं मिली .." प्रोग्रामेटिक रूप से

लेकिन मैं नहीं चाहता कि हर बार जब मैं प्रोग्राम चलाता हूं तो कंसोल पर यह संदेश प्रदर्शित होना चाहिए क्योंकि मैं प्रोग्रामेटिक रूप से कॉन्फ़िगरेशन स्वयं जोड़ूंगा।

संदेश:

ERROR StatusLogger No log4j2 configuration file found. Using default configuration: logging only errors to the console. 

यह आता है जब मैं नीचे दिए गए कोड को फोन:

LoggerContext context = (LoggerContext) LogManager.getContext(false); 

या अगर मैं पहली बार जड़ लकड़हारा मिलती है:

Logger logger = LogManager.getLogger(LogManager.ROOT_LOGGER_NAME); 

वहाँ किसी तरह का है संपत्ति का मैं इस संदेश को प्रदर्शित होने से अक्षम करने के लिए सेट कर सकता हूं? या एक और दृष्टिकोण?

नोट: मैं संपत्ति -Dlog4j2.disable.jmx=true की स्थापना करके Log4j2 JMX के बारे में कोई अन्य सूचना अक्षम। लेकिन मैं इसके लिए नहीं मिला।

उत्तर

9

क्रम में निम्न सिस्टम संपत्ति जोड़ें कि संदेश नहीं दिखाने के लिए:

-Dorg.apache.logging.log4j.simplelog.StatusLogger.level=OFF 

वैकल्पिक रूप से, और अधिक बस:

import org.apache.logging.log4j.Level; 
import org.apache.logging.log4j.status.StatusLogger; 

... 

StatusLogger.getLogger().setLevel(Level.OFF); 
+0

टीएक्स बहुत पॉल! इसने समस्या हल की। – Excite

+0

आपका स्वागत है। ☺ –

2

आपको कोड से log4j कॉन्फ़िगरेशन के उचित प्रारंभ के लिए प्रारंभिक विधि को कार्यान्वित करना होगा।

नीचे दिए गए पृष्ठ में "कॉन्फ़िगरेशन फ़ाइल के बिना कोड में लॉग 4j2 को कॉन्फ़िगर कैसे करें" अनुभाग देखें जो स्रोत कोड भी प्रदान करता है।

http://logging.apache.org/log4j/2.x/faq.html

+0

हाँ, लेकिन उस कक्षा के अंदर सभी प्रारंभिक विधियों के लिए आपको कॉन्फ़िगरेशन फ़ाइल का स्थान देना आवश्यक है। – Excite

6

आप बस अपने मुख्य में यह कर सकते हैं कक्षा।

static { 
    StatusLogger.getLogger().setLevel(Level.OFF); 
} 
+0

~ यह ~ जवाब है। :) – Qix

+0

मेरा दिन बचाओ !!! thnx – limonik

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