Log4J में दहलीज का क्या अर्थ है?


80

मेरे पास log4jनीचे की तरह कुछ गुण हैं। लॉग इन किया गया TextProcessor.logसब कुछ WARN स्तर से ऊपर है। मुझे समझ में नहीं आता कि थ्रेशोल्ड डीबग करने के लिए यहां सेट है। क्या कोई समझा सकता है कि दहलीज क्या करता है?

log4j.logger.TextProcessor=warn,TextProcessor 

log4j.appender.TextProcessor=org.apache.log4j.RollingFileAppender
log4j.appender.TextProcessor.File=C:/project/logs/TextProcessor.log
log4j.appender.TextProcessor.MaxFileSize=10MB
log4j.appender.TextProcessor.MaxBackupIndex=10
log4j.appender.TextProcessor.Threshold=debug
log4j.appender.TextProcessor.layout=org.apache.log4j.PatternLayout
log4j.appender.TextProcessor.layout.ConversionPattern=[%d] [%5p] (%F:%L) - %m%n

1
लॉग 4 जे के स्तर और थ्रेशोल्ड के प्रभाव के बारे में लॉग 4 जे के लिए उत्पादन सेटिंग्स भी देखें ।
वडज़िम

जवाबों:


123

आपके पास यहां दो चीजें हैं: एक लकड़हारा, और एक परिशिष्ट। दुर्भाग्य से, आपने दोनों के लिए एक ही नाम चुना है, जो इसे बहुत स्पष्ट नहीं करता है।

लकड़हारे का न्यूनतम स्तर चेतावनी देने के लिए सेट किया गया है, जिसका अर्थ है कि आप इस लकड़हारे के साथ लॉग इन करते हैं, जिसमें कम से कम चेतावनी स्तर नहीं होता है।

एक बार जब कोई संदेश लकड़हारे द्वारा स्वीकार किया जाता है, तो उसे एक या कई ऐपेंडरों (एक फ़ाइल को, कंसोल को, एक मेल सर्वर, आदि को) भेजा जाता है। इनमें से प्रत्येक परिशिष्ट एक सीमा को परिभाषित कर सकता है। आप उदाहरण के लिए कंसोल में संदेशों को त्रुटियों तक सीमित कर सकते हैं, लेकिन लॉग फ़ाइल में चेतावनी संदेश स्वीकार करते हैं।


मेरे लिए 'दहलीज' वास्तव में फिट नहीं है। मैंने xml कॉन्फ़िगरेशन का उपयोग करके log4j शुरू किया और ऐपेंडर्स में इसे थ्रेशोल्ड के अर्थ के साथ 'स्तर' कहा जाता है। मुझे लगता है कि दो अलग-अलग लेबल (लेबल, दहलीज) के साथ एक ही अवधारणा (लॉग गंभीरता को सीमित करना) को समझना और अधिक कठिन हो जाता है (यदि मैं वास्तव में इसे अभी तक समझ नहीं पाया था)। लेकिन मैं वैसे भी देशी अंग्रेजी बोलने वाला नहीं हूं।
डिर्क शूमाकर

33

लॉग किए जाने वाले संदेशों के लिए थ्रेशोल्ड दूसरा फ़िल्टर है

उदाहरण के लिए:

 log4j.logger.TextProcessor=Debug,TextProcessor , InfoLogger
 .
 .
 .
 log4j.appender.TextProcessor.Threshold=Error

यदि लकड़हारा DEBUG के स्तर पर सेट किया गया है और परिशिष्ट थ्रेसहोल्ड त्रुटि पर सेट किया गया है, तो परिशिष्ट TextProcessor के साथ केवल त्रुटि और उच्च गंभीरता संदेश लॉग किया जाएगा।

थ्रेसहोल्ड का उपयोग होता है, आप विभिन्न एपेंडरों को अलग-अलग सीमा स्तरों के साथ परिभाषित कर सकते हैं, उदाहरण के लिए उपर्युक्त उदाहरण में आप InfoLogger भी हो सकते हैं, जिसमें सूचना स्तर संदेश लॉगिंग सक्षम है

 log4j.logger.TextProcessor=Debug,TextProcessor , InfoLogger
 .
 .
 .
 log4j.appender.InfoLogger.Threshold=INFO

स्तरों को समझने के लिए, log4j में लॉगिंग के निम्न स्तर हैं :

FATAL: shows messages at a FATAL level only  
ERROR: Shows messages classified as ERROR and FATAL  
WARNING: Shows messages classified as WARNING, ERROR, and FATAL  
INFO: Shows messages classified as INFO, WARNING, ERROR, and FATAL  
DEBUG: Shows messages classified as DEBUG, INFO, WARNING, ERROR, and FATAL  
TRACE : Shows messages classified as TRACE,DEBUG, INFO, WARNING, ERROR, and FATAL
ALL : Shows messages classified as TRACE,DEBUG, INFO, WARNING, ERROR, and FATAL 
OFF : No log messages display

अधिक जानकारी के लिए URL पर जाएं


25

प्रवेश के स्तर होते हैं TRACE, DEBUG, INFO,WARN , ERRORऔर FATAL। आप गंभीरता के आधार पर कोड में किस स्तर पर लॉग इन करें, यह चुनने में सक्षम होंगे। उदाहरण के लिए, आपके पास प्रवेश करने और विधियों से बाहर निकलने की क्षमता होगी, लेकिन DEBUGस्तर पर लॉग इन करने का विकल्प चुन सकते हैं । यह आपको कोड को डिबग करने में मदद करेगा क्योंकि यह डिफ़ॉल्ट रूप से कंसोल पर प्रिंट होगा (डिफ़ॉल्ट कंसोल ऐपेंडर चालू है)। उत्पादन के लिए जाते समय आप थ्रेशोल्ड को बढ़ा सकते हैं ERRORऔर एप्लिकेशन को प्रिंट करने से रोक सकते हैं ताकि कंसोल या लॉग फ़ाइलों पर इतना उपयोगी विवरण न हो।


13

लॉग संदेश के प्रवाह के लिए गुण कॉन्फ़िगर फ़ाइल से आपको सरल मैपिंग दें। (मैं कम से कम करने के लिए कॉन्फ़िगर की कुछ पंक्तियों को छिपा दिया)

log4j.rootLogger=ALL, stdout
log4j.logger.com.xyz=INFO, file

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Threshold=DEBUG
...

log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.Threshold=WARN
...

ऊपर सेटिंग्स से लॉगिंग का स्कीमा

यह समझने के लिए कि यह क्या है, आपको पता होना चाहिए कि:

  • बाईं ओर पुनः प्राप्त करते समय लॉगिंग का स्तर बढ़ जाता है: TRACE, DEBUG, INFO, WARN, ERROR और FATAL
  • न्यूनतम स्तर लॉगिंग जो लकड़हारा आवेदन से स्वीकार करता है।
  • एपेंडर पर न्यूनतम स्तर की लॉगिंग जो तय करती है कि क्या लिखा जाएगा

** कुछ चीजें विरासत और लत के बारे में अधिक जटिल हैं, लेकिन आपको पहले बुनियादी और सरल चीजों पर शुरू करना चाहिए।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.