जावा में लकड़हारा क्या है और आप इसका उपयोग क्यों करते हैं?



जावा में लकड़हारा पर यह लेख परियोजनाओं को बनाते समय लॉगिंग समाधान के लिए उपयोग किए जाने वाले जावा लॉगिंग एपीआई पर एक व्यापक गाइड है।

लॉगिंग एक महत्वपूर्ण विशेषता है जिसे डेवलपर्स द्वारा त्रुटियों का पता लगाने के लिए विचार करने की आवश्यकता है। सबसे लोकप्रिय प्रोग्रामिंग भाषाओं में से एक होने के नाते, एक मूल लॉगिंग एपीआई प्रदान करके लॉगिंग के लिए अनुकूलन योग्य दृष्टिकोण के साथ आता है। तो, जावा में लकड़हारा पर इस लेख में, मैं चर्चा करने जा रहा हूं कि कैसे जावा में एक्स्टेंसिबल लॉगिंग को सक्षम करने के लिए इस सुविधा का उपयोग कर सकते हैं।

इस लेख में निम्नलिखित विषयों को शामिल किया जाएगा:





    1. लॉगिंग की आवश्यकता है
    2. लॉगिंग घटक
    3. लकड़हारा क्या है?
    4. परिशिष्ट या संचालक
    5. लेआउट या प्रारूपक

इससे पहले, हम जावा में लॉगिंग में गहरी गोता लगाते हैं, आइए हम लॉगिंग की आवश्यकता को समझते हैं।

लॉगिंग की आवश्यकता है

अनुप्रयोगों का निर्माण करते समय, हम अक्सर उन त्रुटियों का सामना करते हैं, जिन्हें डिबग करना पड़ता है। इसलिए, लॉग की मदद से, हम आसानी से त्रुटियों और असामान्य परिस्थितियों के रिकॉर्ड के साथ आवेदन में क्या हो रहा है, इसके बारे में जानकारी प्राप्त कर सकते हैं। अब, यह आपके दिमाग पर आघात कर सकता है कि, क्यों नहीं System.out.print () स्टेटमेंट का उपयोग करें । खैर, इन कथनों के साथ समस्या यह है कि लॉग संदेश केवल कंसोल पर मुद्रित किए जाएंगे। इसलिए, जैसे ही आप कंसोल को बंद करेंगे, स्वचालित रूप से, सभी लॉग खो जाएंगे। इसलिए, लॉग को स्थायी रूप से संग्रहीत नहीं किया जाएगा, और एक-एक करके प्रदर्शित किया जाता है, क्योंकि यह एकल-थ्रेडेड वातावरण है।



ऐसे मुद्दों से बचने के लिए, जावा में लॉग इन की मदद से सरलीकरण किया जाता हैएपीआई के माध्यम से प्रदान की गईjava.util.logपैकेज, औरorg.apache.log4j। *पैकेज।

लॉगिंग घटक

जावा लॉगिंग घटक डेवलपर को लॉग बनाने में मदद करते हैं, लॉग को संबंधित गंतव्य तक पहुंचाते हैं और एक उचित प्रारूप बनाए रखते हैं। निम्नलिखित तीन घटक हैं:

  • लकड़हारा - लॉग रिकॉर्ड पर कब्जा करने और उन्हें संबंधित परिशिष्ट में पारित करने के लिए जिम्मेदार।
  • अपेंडर्स या हैंडलर - वे एक गंतव्य के लिए लॉग इवेंट रिकॉर्ड करने के लिए जिम्मेदार हैं। आउटपुट भेजने से पहले, लेआउट, लेआउट की मदद से घटनाओं का प्रारूपण करते हैं।
  • लेआउट या प्रारूपक - यह निर्धारित करने के लिए जिम्मेदार है कि लॉग प्रविष्टि में डेटा कब दिखता है।

आप सभी तीन घटकों के काम के लिए नीचे की छवि देख सकते हैं:



लॉगिंग घटक - लॉग इन जावा - एडुरका

जब कोई एप्लिकेशन लॉगिंग कॉल करता है, तो लॉगर घटक किसी लॉगरकार्ड में ईवेंट को रिकॉर्ड करता है और उसे उपयुक्त एपेन्डर को फॉरवर्ड करता है। फिर उसने आवश्यक प्रारूप के अनुसार लेआउट का उपयोग करके रिकॉर्ड बनाया। इसके अलावा, आप यह निर्दिष्ट करने के लिए एक से अधिक फ़िल्टर्स का उपयोग कर सकते हैं कि कौन सा ऐप्पेंडर्स घटनाओं के लिए उपयोग किया जाना चाहिए।

अब, आइए समझते हैं कि जावा में गहराई से एक लकड़हारा क्या है।

Java में Logger क्या है?

जावा में लकड़हारे ऐसी वस्तुएं हैं जो लॉग ईवेंट को ट्रिगर करते हैं, उन्हें बनाया जाता है और उन्हें एप्लिकेशन के कोड में बुलाया जाता है, जहां वे लॉग कंपोनेंट्स को अगले कंपोनेंट में पास करने से पहले जेनरेट करते हैं जो कि एक ऐपेंडर है। आप विभिन्न घटनाओं का जवाब देने के लिए एक एकल वर्ग में कई लॉगर्स का उपयोग कर सकते हैं या पदानुक्रम में लॉगर्स का उपयोग कर सकते हैं। उन्हें सामान्य रूप से पदानुक्रमित डॉट-अलग नामस्थान का उपयोग करके नाम दिया गया है। साथ ही, सभी लकड़हारे नाम कक्षा या लॉग घटक के पैकेज नाम पर आधारित होने चाहिए।

इसके अलावा, प्रत्येक लकड़हारा पास के मौजूदा पूर्वज का ट्रैक रखता है लॉग करता है नाम स्थान और इसके साथ एक 'स्तर' भी जुड़ा हुआ है। खैर, मैं इस लेख के उत्तरार्ध में लॉगर्स पर चर्चा करूंगा, लेकिन इससे पहले, मैं आपको जावा में एक लॉगर बनाने का तरीका बताता हूं।

नया लकड़हारा बनाएँ

जावा में एक नया लकड़हारा बनाने की प्रक्रिया काफी सरल है। आपको उपयोग करना होगाLogger.getLogger ()तरीका। दGetLogger () लकड़हारे के नाम की पहचान करता है और एक पैरामीटर के रूप में स्ट्रिंग लेता है। इसलिए, यदि कोई लकड़हारा पहले से मौजूद है, तो वह लकड़हारा वापस आ जाता है, अन्यथा एक नया लकड़हारा बनाया जाता है।

वाक्य - विन्यास:

स्थिर लकड़हारा लकड़हारा = लकड़हारा लकड़हारा (SampleClass.class.getName ())

यहाँ, नमूनाक्लास वह वर्ग नाम है जिसके लिए हमें लॉगर ऑब्जेक्ट मिल रहा है।

उदाहरण:

सार्वजनिक वर्ग ग्राहक {निजी स्थैतिक अंतिम लकड़हारा लकड़हारा = लकड़हारा। ग्राहक (ग्राहक। कुल) सार्वजनिक शून्य getCustomerDetails () {}}

अब जब मैंने आपको जावा में एक लॉगर बनाने का तरीका बताया है, तो आइए लॉगिंग में उपलब्ध विभिन्न स्तरों को देखें।

लॉग स्तर

लॉग स्तर का उपयोग लॉग को उनकी गंभीरता या अनुप्रयोग की स्थिरता पर प्रभाव को वर्गीकृत करने के लिए किया जाता है। दorg.apache.log4j। *पैकेज औरjava.util.logदोनों लॉगिंग के विभिन्न स्तर प्रदान करते हैं। आइए हम उनमें से प्रत्येक को एक-एक करके देखें।

org.apache.log4j। *पैकेज अवरोही क्रम में निम्न स्तर प्रदान करता है:

  • FATAL
  • त्रुटि
  • WARN
  • जानकारी
  • DEBUG

java.util.logपैकेज अवरोही क्रम में निम्न स्तर प्रदान करता है:

  • कभी (उच्चतम स्तर)
  • चेतावनी
  • जानकारी
  • CONFIG
  • ठीक
  • बारीक
  • अंतिम (सबसे कम स्तर)

इसके अलावा, उपरोक्त पैकेज दो अतिरिक्त स्तर भी प्रदान करता हैसबतथाबंद हैसभी संदेशों को लॉग करने और क्रमशः लॉगिंग को अक्षम करने के लिए उपयोग किया जाता है।

झांकी दो डेटा स्रोतों सम्मिश्रण

जावा का उपयोग करके लॉगिंग का उदाहरणorg.apache.log4j। *पैकेज:

इंपोर्ट org.apache.log4j। लॉगर पब्लिक क्लास कस्टमर {स्टैटिक लॉगर लॉगर = लॉगर.गेटलॉगर (Customer.class) पब्लिक स्टैटिक शून्य मेन (String [] args) {logger.error ('ERROR') logger.warn ('चेतावनी') ) logger.fatal ('FATAL') logger.debug ('DEBUG') logger.info ('INFO') System.out.println ('फाइनल आउटपुट')}}

तो अगर आपका आउटपुट हैहमारे में WARN स्तर के रूप में रूट लकड़हारा log4j.properties फ़ाइल, तब WARN से उच्च प्राथमिकता वाले सभी त्रुटि संदेश नीचे के रूप में मुद्रित किए जाएंगे:

आप सेटलेवल () विधि का उपयोग करके स्तर भी सेट कर सकते हैंjava.util.logनीचे के रूप में पैकेज:

logger.setLevel (Level.WARNING)

जावा का उपयोग करके लॉगिंग का उदाहरणjava.util.logपैकेज:

पैकेज edureka import java.io.IOException import java.util.log.Level import java.util.log.Logger import java.util.log। * वर्ग EdurekaLogger {निजी अंतिम स्टेटिक स्टेगर लॉगजी = लॉगर.गेटलॉगर (Logger.GLOBAL_LOGGER_NAME) सार्वजनिक आयात। void नमूनालॉग () {LOGGER.log (Level.WARNING, 'Welcome to Edureka!')}} सार्वजनिक वर्ग ग्राहक {public static void main (String [] args) {EdurekaLogger obj = new EdurekaLogger () obj.sampleLog () LogManager slg = LogManager.getLogManager () Logger log = slg.getLogger (Logger.GLOBAL_LOGGER_NAME) log.log (Level.WARNING, 'Hi! Edureka से आपका स्वागत है)}}}!

का उपयोग करके अपने आवेदन में लॉगिंग को सक्षम करने के लिएorg.apache.log4j। *पैकेज याjava.util.logपैकेज, आपको गुण फ़ाइल को कॉन्फ़िगर करना होगा। जावा में लकड़हारा पर इस लेख के आगे, आइए हम उन दोनों के गुणों की फाइल पर चर्चा करें।

Log4j और जावा यूटिल पैकेज के गुण फ़ाइल

नमूना Log4j गुण फ़ाइल:

# रूट लॉगर विकल्प को सक्षम करें log4j.rootLogger = INFO, file, stdout # फ़ाइल को प्रिंट करने के लिए ऐपेंडर्स संलग्न करें log4j.appender.file = org.apache.log4j.RollingFileApple log4j.appender.file.File = E: loglogging.log log4j.appender। file.MaxFileSize = 10MB log4j.appender.file.MaxBackupIndex = 5 log4j.appender.file.layout = org.apache.log4j। : ss}% -5p% c {1}:% L -% m% n # संलग्नक कंसोल पर प्रिंट करने के लिए संलग्न करें log4j.appender.stdout = org.apache.log4j.ConsoleAppender log4j.appender.stdout.Target = System.out log4j.appender.stdout.layout = org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern =% d {yyyy-MM-dd HH: mm: ss}% -5p% c {1}:% L -% m% n
  • Log4j गुण फ़ाइल प्रोजेक्ट के src फ़ोल्डर के अंदर बनाई गई है।
  • log4j.appender.file = org.apache.log4j.RollingFileAppender -> किसी फ़ाइल में सभी लॉग प्रिंट करता है
  • log4j.appender.stdout = org.apache.log4j.ConsoleAppender -> कंसोल में सभी लॉग प्रिंट करता है
  • log4j.appender.file.File = D: loglogging.log -> लॉग फ़ाइल स्थान निर्दिष्ट करता है
  • log4j.appender.file.MaxFileSize = 10MB -> 10MB करने के लिए लॉग फ़ाइल का अधिकतम आकार
  • log4j.appender.file.MaxBackupIndex = 5 -> बैकअप फ़ाइलों की संख्या को 5 तक सीमित करता है
  • log4j.appender.file.layout = org.apache.log4j.PatternLayout -> उस पैटर्न को निर्दिष्ट करता है जिसमें लॉग फ़ाइल में लॉग करेगा।
  • log4j.appender.file.layout.ConversionPattern =% d {yyyy-MM-dd HH: mm: ss}% -5p% c {1}:% L -% m% - -> डिफ़ॉल्ट रूपांतरण पैटर्न सेट करता है।

नमूना जावा उपयोगिता पैकेज गुण फ़ाइल

हैंडलर = java.util.log.ConsoleHandler .level = चेतावनी # आउटपुट डिफ़ॉल्ट निर्देशिका java.util.log.FileHandler.pattern =% h / java% u .log java.util.logging.FileHandler.limit = में संग्रहीत किया जाएगा। 60000 java.util.log.FileHandler.count = 1 java.util.log.FileHandler.formatter = java.util.log.XMLFormatter # लॉग का स्तर ऊपर और नीचे तक सीमित होगा। java.util.log.ConsoleHandler.level = चेतावनी java.util.log.ConsoleHandler.formatter = java.util.logging.SimpleFormatter

यहाँ,

  • java.util.log.FileHandler.pattern =% h / java% u.log -> लॉग फ़ाइलों को लिखा जाएगाC: TEMPjava1.log
  • java.util.log.FileHandler.limit = 50000 ->वह अधिकतम राशि जो लकड़हारा बाइट्स में किसी एक फाइल को लिखता है।
  • java.util.log.FileHandler.count = 1 -> आउटपुट फ़ाइलों की संख्या निर्दिष्ट करता है
  • java.util.log.FileHandler.formatter = java.util.log.XMLFormatter -> फॉर्मेटिंग के लिए उपयोग किया जाने वाला फॉर्मेटर। यहाँ XML Formatter का उपयोग किया जाता है।
  • java.util.log.ConsoleHandler.level = चेतावनी -> चेतावनी के लिए डिफ़ॉल्ट लॉग स्तर सेट करता है
  • java.util.log.ConsoleHandler.formatter = java.util.log.SimpleFatteratter ->निर्दिष्ट करता हैसूत्रसभी द्वारा उपयोग किया जाना हैकंसोलहैंडलर‘S। यहाँ, SimpleFormatter का उपयोग किया जाता है।

लॉगिंग इवेंट्स

में ईवेंट लॉग करने के लिए , आपको यह सुनिश्चित करना होगा कि आप घटनाओं को आसानी से फाइल करने के लिए एक स्तर प्रदान करें। एक स्तर असाइन करने और एक संदेश का उल्लेख करने के लिए आप नीचे दिए गए तरीकों का उपयोग कर सकते हैं:

विधि 1:

logger.log (Level.INFO, 'प्रदर्शन संदेश')
यहां, स्तर INFO है और मुद्रित होने वाला संदेश 'प्रदर्शन संदेश' है।

विधि 2:

logger.info ('प्रदर्शन संदेश')

यह सुनिश्चित करने के लिए कि जावा में लॉगर, केवल उन्हीं घटनाओं को लॉग करता है जो INFO स्तर पर या उससे ऊपर हैं, आप उपयोग कर सकते हैं सेटवेल () विधि ऊपर चर्चा की।

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

परिशिष्ट या संचालक

एक गंतव्य पर लॉग इवेंट रिकॉर्ड करने के लिए ऐपेंडर या हैंडलर जिम्मेदार हैं। प्रत्येक लकड़हारे के पास कई हैंडलर तक पहुंच है और लकड़हारे से लॉग संदेश प्राप्त करता है। फिर, ऐप्पडेंट घटनाओं को प्रारूपित करने और उन्हें संबंधित गंतव्य पर भेजने के लिए फॉर्मेटर्स या लेआउट का उपयोग करते हैं।

एक Appender को SetLvel (Level.OFF) विधि का उपयोग करके बंद किया जा सकता है। में दो सबसे मानक हैंडलरjava.util.logपैकेज निम्नानुसार हैं:

  • फ़ाइलहैंडलर: फ़ाइल करने के लिए लॉग संदेश लिखें
  • कंसोलहैंडलर: कंसोल को लॉग संदेश लिखता है

आपकी बेहतर समझ के लिए, मैंने गुण अनुभाग में कुछ परिशिष्टों की व्याख्या की है।

लेआउट या प्रारूपक

फ़ॉर्मेटर्स के लेआउट का उपयोग लॉग इवेंट में डेटा को प्रारूपित करने और परिवर्तित करने के लिए किया जाता है।लॉगिंग फ्रेमवर्क HTML, XML, Syslog, JSON, सादे पाठ और अन्य लॉग के लिए लेआउट प्रदान करते हैं।

  1. SimpleFormatter : मूल जानकारी के साथ पाठ संदेश उत्पन्न करता है।
  2. XMLFormatter : लॉग के लिए XML संदेश बनाता है

आपकी बेहतर समझ के लिए, मैंने गुण अनुभाग में कुछ लेआउट की व्याख्या की है।इसके साथ, हम 'जावा में लकड़हारा' पर इस ब्लॉग के अंत में आते हैं। मुझे उम्मीद है कि आप लोग इस लेख में आपको जो सिखाया गया है उससे स्पष्ट हैं।

इसकी जाँच पड़ताल करो 250,000 से अधिक संतुष्ट शिक्षार्थियों के एक नेटवर्क के साथ एक विश्वसनीय ऑनलाइन शिक्षण कंपनी, एडुरेका द्वारा, दुनिया भर में फैली हुई है। एडुर्का के जावा जे 2 ईई और एसओए प्रशिक्षण और प्रमाणन पाठ्यक्रम उन छात्रों और पेशेवरों के लिए डिज़ाइन किया गया है जो जावा डेवलपर बनना चाहते हैं। पाठ्यक्रम आपको जावा प्रोग्रामिंग में एक शुरुआत देने के लिए डिज़ाइन किया गया है और आपको हाइबरनेट और स्प्रिंग जैसे विभिन्न जावा फ्रेमवर्क के साथ कोर और उन्नत जावा अवधारणाओं दोनों के लिए प्रशिक्षित करता है।

क्या आप हमसे कोई प्रश्न पूछना चाहते हैं? कृपया 'जावा में लकड़हारा' ब्लॉग के टिप्पणी अनुभाग में इसका उल्लेख करें और हम जल्द से जल्द आपको वापस कर देंगे।