लॉग4जे

अपाचे लॉग4जे जावा (सॉफ़्टवेयर प्लेटफ़ॉर्म)-आधारित लॉगिंग (सॉफ़्टवेयर) उपयोगिता है जिसे मूल रूप से सेकी गुल्कु द्वारा लिखा गया है। यह अपाचे लॉगिंग सेवाएं का भाग है, जो अपाचे सॉफ्टवेयर फाउंडेशन की परियोजना है। लॉग4जे कई जावा लॉगिंग फ्रेमवर्क में से एक है।

गुल्कु ने तब से एसएलएफ 4 जे, रीलोड4जे, बनाया है। और लॉगबैक जो लॉग4जे के विकल्प हैं। अपाचे लॉग4जे टीम ने लॉग4जे 2 विकसित किया लॉग4जे 1.2, 1.3 की समस्याओं के उत्तर में,  और लॉगबैक, उन मुद्दों को संबोधित करते हुए जो उन रूपरेखाओं में प्रकट हुए। इसके अतिरिक्त, लॉग4जे 2 ने प्लग-इन स्थापत्य प्रस्तुत किया जो इसे अपने पूर्ववर्ती की तुलना में अधिक विस्तार योग्य बनाता है। लॉग4जे 2 1.x संस्करणों के साथ पीछे संगत नहीं है, चूंकि अनुकूलक उपलब्ध है। 5 अगस्त 2015 को, अपाचे लॉगिंग सेवाएं परियोजना प्रबंधन समिति ने घोषणा की। कि लॉग 4 जे 1 जीवन के अंत तक पहुंच गया था और लॉग 4 जे 1 के उपयोगकर्ताओं को अपाचे लॉग 4 जे 2 में अपग्रेड करने की सलाह दी गई थी। 12 जनवरी, 2022 को, सेकी गुल्कु द्वारा रीलोड4जे संस्करण 1.2.18.0 के रूप में कांटा और नया नाम दिया गया लॉग4जे संस्करण 1.2 जारी किया गया था, जिसका उद्देश्य लॉग4जे 1.2.17 में सबसे आवश्यक मुद्दों को ठीक करना था जो 2013 में इसकी प्रकाशन के बाद से जमा हो गए थे। 9 दिसंबर, 2021 को, शून्य-दिन (कंप्यूटिंग) | शून्य-दिन की भेद्यता जिसमें लॉग4जे 2 में विवेकाधीन कोड निष्पादन सम्मलित है, इसको अलीबाबा क्लाउड सुरक्षा दल द्वारा प्रकाशित किया गया था और विवरणक लॉग4शेल दिया गया था। इसे टेनेबल द्वारा "पिछले दशक की सबसे बड़ी, सबसे महत्वपूर्ण भेद्यता" के रूप में चित्रित किया गया है।

अपाचे लॉग 4 जे 2
अपाचे लॉग4जे 2, लॉग4जे 1 का उत्तराधिकारी है जिसे जुलाई 2014 में सॉफ़्टवेयर प्रदर्शन जीवन चक्र सामान्य उपलब्धता .28GA.29 के रूप में जारी किया गया था। फ्रेमवर्क को स्क्रैच से फिर से लिखा गया था और यह उपस्थित लॉगिंग समाधानों से प्रेरित है, जिसमें लॉग4जे 1 और java.util.logging. सम्मलित हैं। मुख्य अंतर लॉग4जे 1 से हैं:
 * उन्नत विश्वसनीयता। लॉग4जे 1 या लॉगबैक जैसे ढांचे को पुन: कॉन्फ़िगर करते समय संदेश लुप्त नहीं होते हैं
 * विस्तारणीयता: उपयोगकर्ताओं को प्रचलन घटकों को परिभाषित और कॉन्फ़िगर करने देने के लिए लॉग4जे 2 प्लग-इन प्रणाली का समर्थन करता है
 * सरलीकृत विन्यास सिंटैक्स
 * एक्सएमएल, जेसन, यमल और गुण विन्यास के लिए समर्थन
 * श्रेष्ठतर फिल्टर
 * विन्यास फ़ाइल, प्रणाली गुण, पर्यावरण चर, थ्रेड प्रसंग मानचित्र और घटना में उपस्तिथ डेटा में परिभाषित मूल्यों के लिए संपत्ति लुकअप समर्थन
 * एकाधिक एपीआई के लिए समर्थन: लॉग4जे 2 का उपयोग लॉग4जे 2, लॉग4जे 1.2, एसएलएफ4जे, कॉमन्स लॉगिंग और जावा.यूटिल.लॉगिंग (जेयूएल) एपीआई का उपयोग करने वाले अनुप्रयोगों के साथ किया जा सकता है।
 * प्रचलन लॉग स्तर
 * आलसी लॉगिंग के लिए जावा 8-शैली लैम्ब्डा समर्थन
 * मार्कर
 * उपयोगकर्ता परिभाषित संदेश वस्तुओं के लिए समर्थन
 * सामान्य विन्यास में कचरा मुक्त या कम कचरा
 * श्रेष्ठतर गति
 * लिनक्स के लिए श्रेष्ठतर समर्थन

लॉग4जे 2 की सबसे अधिक पहचानी जाने वाली विशेषताओं में से अतुल्यकालिक लॉगर्स का प्रदर्शन है। लॉग4जे 2 विघ्नकर्ता (सॉफ्टवेयर) का उपयोग करता है। पुस्तकालय कर्नेल लॉकिंग की आवश्यकता को कम करता है और लॉगिंग प्रदर्शन को 12 गुना बढ़ा देता है। उदाहरण के लिए, उसी वातावरण में लॉग4जे 2 प्रति सेकंड 18,000,000 से अधिक संदेश लिख सकता है, जबकि अन्य फ्रेमवर्क जैसे लॉगबैक और लॉग4जे 1 केवल प्रति सेकंड <2,000,000 संदेश लिखते हैं ।

लॉग4जे लॉग स्तर
निम्न तालिका गंभीरता के घटते क्रम में लॉग4जे में अंतर्निहित लॉग स्तरों और संदेशों को परिभाषित करती है। बायाँ स्तंभ लॉग4जे में लॉग स्तर पदनाम को सूचीबद्ध करता है और दायाँ स्तंभ प्रत्येक लॉग स्तर का संक्षिप्त विवरण प्रदान करता है।

प्रचलन लॉग स्तर
लॉग4जे 2 उपयोगकर्ताओं को अपने स्वयं के लॉग स्तरों को परिभाषित करने की अनुमति देता है। लॉगर्स बनाने के लिए स्रोत कोड जनरेटर उपकरण प्रदान किया जाता है जो प्रचलन लॉग स्तरों को अंतर्निहित लॉग स्तरों के समान समर्थन करता है। प्रचलन लॉग स्तर या तो अंतर्निर्मित लॉग स्तरों को पूरक या प्रतिस्थापित कर सकते हैं।

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

लॉगर को लॉग संदेश गंतव्यों का नाम दिया गया है। वे नाम हैं जो जावा एप्लिकेशन के लिए जाने जाते हैं। प्रत्येक लॉगर स्वतंत्र रूप से कॉन्फ़िगर करने योग्य है कि वह वर्तमान में लॉगिंग के किस स्तर (घातक, त्रुटि, आदि) पर लॉग करता है। लॉग4जे के प्रारंभिक संस्करणों में, इन्हें श्रेणी और प्राथमिकता कहा जाता था, किन्तु अब इन्हें क्रमशः लॉगर और स्तर कहा जाता है। लॉगर कई परिशिष्टों को लॉग संदेश भेज सकता है।

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

परिशिष्ट लेआउट का उपयोग करते हैं लॉग प्रविष्टियों को प्रारूपित करने के लिए। एक-पंक्ति-पर-एक-समय लॉग फ़ाइलों को प्रारूपित करने का लोकप्रिय विधि विन्यास स्वरूप है, जो स्वरूप स्ट्रिंग का उपयोग करता है, जैसे सी (प्रोग्रामिंग भाषा) / सी ++ फ़ंक्शन printf । जब HTML या XML प्रारूप क्रमशः अधिक सुविधाजनक होते हैं, तो उपयोग के लिए एचटीएमएल लेआउट और एक्सएमएल लेआउट स्वरूपक भी होते हैं। लॉग4जे 2 ने कोमा से अलग किए गए मानों के लिए लेआउट जोड़े, ग्रेलॉग विस्तारित लॉग फॉर्मेट (GELF), JSON, YAML और RFC-5424। लॉग4जे 2 में, फ़िल्टर अधिक सुक्ष्म नियंत्रण देने के लिए विन्यास तत्वों पर परिभाषित किया जा सकता है कि कौन से लॉग प्रविष्टियों को संसाधित किया जाना चाहिए जिनके द्वारा लॉगर और परिशिष्ट। संदेश स्ट्रिंग पर लॉग स्तर और नियमित अभिव्यक्ति मिलान द्वारा फ़िल्टर करने के अतिरिक्त, लॉग4जे 2 ने बर्स्ट फ़िल्टर, समय फ़िल्टर, अन्य लॉग इवेंट विशेषताओं जैसे मार्कर या थ्रेड संदर्भ नक्शा और JSR 223 को स्क्रिप्ट फ़िल्टर द्वारा फ़िल्टर किया।

दुर्व्यवहार करने वाले विन्यास को डीबग करने के लिए: यह पता लगाने के लिए कि लॉग4जे 2.xml विन्यास फ़ाइल को निरीक्षण से जहाँ लोड किया गया था.
 * लॉग4जे 2 विन्यास में सेट करें  मानक स्ट्रीम में आंतरिक स्थिति लॉगिंग आउटपुट भेजने के लिए चिह्न को विशेषता। विन्यास मिलने से पहले स्थिति लॉगिंग सक्षम करने के लिए, जावा VM गुण का उपयोग करें.
 * लॉग4जे 1 में, जावा VM गुण का उपयोग करें.

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

लॉग4जे 2 के लिए उदाहरण

लॉग4जे 1.2 के लिए उदाहरण

टीटीसीसी
TTCC संदेश प्रारूप है जिसका उपयोग लॉग4जे द्वारा किया जाता है। TTCC समय धागा श्रेणी घटक के लिए संक्षिप्त शब्द है। यह निम्न स्वरूप का उपयोग करता है:

%r [%t] %-5p %c %x - %m%n

जहाँ उदाहरण आउटपुट 467 [मुख्य] ​​जानकारी org.apache.log4j.examples.Sort - मुख्य विधि से बाहर निकलना।

पोर्ट्स

 * log4c - C के लिए पोर्ट। Log4C C-आधारित कंप्यूटर डेटा लॉगिंग लाइब्रेरी है, जिसे LGPL अधिकार के अनुसार स्रोत फोर्ज पर जारी किया गया है। विभिन्न यूनिक्स ऑपरेटिंग प्रणाली के लिए autoconf और automake प्रारूप प्रदान की जाती हैं। माइक्रोसॉफ़्ट विंडोज़ पर एमएसवीसी के साथ उपयोग के लिए मेकफाइल प्रदान की जाती है। सॉफ्टवेयर डेवलपर अपनी निर्माण इंजीनियरिंग आवश्यकताओं के आधार पर स्रोत को संकलित करने के लिए अपने स्वयं के मेक प्रणाली का उपयोग करना चुन सकते हैं। Log4c लाइब्रेरी का उदाहरण तीन तरीकों से कॉन्फ़िगर किया जा सकता है: पर्यावरण चर का उपयोग करके, प्रोग्रामेटिक रूप से, या XML विन्यास फ़ाइल के माध्यम से। log4c में फ़ाइलें, स्ट्रीम और मेमोरी मैप की गई फ़ाइलों के लिए परिशिष्ट हैं। (कोई सॉकेट अनुकूलक नहीं।) अंतिम संस्करण 1.2.4 है, जो 2013 में जारी किया गया था और परियोजना अब सक्रिय रूप से विकसित नहीं हुई है।
 * लॉग4जे - जावास्क्रिप्ट के लिए पोर्ट। लॉग4जे अपाचे सॉफ्टवेयर फाउंडेशन के अधिकार के अंतर्गत उपलब्ध है। लॉग4जे की विशेष विशेषता ब्राउज़र की घटनाओं को सर्वर पर दूरस्थ रूप से लॉग करने की क्षमता है। अजाक्स (प्रोग्रामिंग) का उपयोग करके लॉगिंग घटनाओं को कई प्रारूपों (एक्सएमएल, जेएसओएन, सादा एएससीआईआई, आदि) में मूल्यांकन के लिए सर्वर पर भेजना संभव है। निम्न परिशिष्ट लॉग4जे के लिए लागू किए गए हैं: अजाक्सएपेंडर, कंसोलएपेंडर, फाइलएपेंडर, जेएसकॉनसोलएपेंडर, मेटाटैगएपेंडर और विंडोजइवेंट्सएपेंडर। निम्नलिखित लेआउट कक्षाएं प्रदान की जाती हैं: बेसिक लेआउट, एचटीएमएल लेआउट, जेएसओएन लेआउट और एक्सएमएल लेआउट। नवीनतम संस्करण 18 अक्टूबर 2018 का 2.0 था।
 * लॉग4जे जावास्क्रिप्ट - जावास्क्रिप्ट के लिए एक और पोर्ट। लॉग4जे जावास्क्रिप्ट लॉग4जे पर आधारित जावास्क्रिप्ट लॉगिंग फ्रेमवर्क है। नवीनतम संस्करण 1.4.13 था, 23 मई 2015 को जारी किया गया।
 * जेएसएन लॉग- जावास्क्रिप्ट के लिए पोर्ट। लॉग4नेट, एनएलओजी, एल्माह या Common.Logging के साथ इंटरफेस करने वाले .NET सर्वर साइड घटक का उपयोग करके सर्वर साइड लॉग में जावास्क्रिप्ट लॉगर से संदेशों को स्वचालित रूप से रखता है। यह ग्राहक और सर्वर साथ में कार्यक्रम के लिए एकीकृत लॉग प्रदान करने के लिए है। अनुरोध आईडी विशिष्ट उपयोगकर्ता से संबंधित घटनाओं से संबंधित हैं। विन्यास सर्वर साइड web.config फ़ाइल के माध्यम से होता है। स्टैक ट्रेस सहित अपवाद लॉगिंग का समर्थन करता है। नवीनतम संस्करण 3.0.0 था और अद्यतन नियमित रूप से किए गए थे।
 * अपाचे लॉग4नेट- Microsoft .NET Framework के लिए पोर्ट। प्रारंभिक कार्य नियोवर्क्स द्वारा किया गया था और फरवरी 2004 में अपाचे सॉफ्टवेयर फाउंडेशन को दान कर दिया गया था। .NET रनसमय में नई सुविधाओं का लाभ उठाते हुए रूपरेखा मूल लॉग4जे के समान है। स्थिर नैदानिक संदर्भ (NDC) और मानचित्र नैदानिक संदर्भ (MDC) प्रदान करता है। नवीनतम संस्करण 2.0.15 था।
 * लॉग4 पर्ल- लॉग4जे का पर्ल पोर्ट। फरवरी 2017 का संस्करण 1.49 चालू था.
 * अपाचे लॉग4 पीएचपी- PHP के लिए बहुमुखी लॉगिंग फ्रेमवर्क। मूल रूप से PHP के लिए अपाचे लॉग4जे का पोर्ट, यह विभिन्न PHP विशिष्ट विशेषताओं को सम्मलित करने के लिए विकसित हुआ है।
 * पीएल-एसक्यूएल-लॉगिंग-यूटिलिटी- पीएल/एसक्यूएल में लॉग4जे का अनुकूलन है।
 * लॉग4डीबी2- LUW के लिए DB2 के लिए लॉगिंग उपयोगिता है जो SQL PL कोड के साथ SQL निर्देशों का उपयोग करता है।
 * अपाचे लॉग4cxx- अपाचे लॉग4जे के बाद प्रतिरूपित C++ के लिए लॉगिंग फ्रेमवर्क, जो अधिकांश प्लेटफ़ॉर्म-विशिष्ट कोड के लिए अपाचे अपाचे पोर्टेबल रनसमय उपयोग करता है और APR द्वारा समर्थित किसी भी प्लेटफ़ॉर्म पर प्रयोग करने योग्य होना चाहिए। नवीनतम संस्करण 0.13.0 है, जो 2022 में जारी किया गया था।
 * लॉग4r- रूबी कार्यक्रमों में उपयोग के लिए रूबी में लिखित व्यापक और लचीली लॉगिंग लाइब्रेरी। यह अपाचे लॉग4जे प्रोजेक्ट की अधिकांश विशेषताओं से प्रेरित था और प्रदान करता है।

लॉग4शेल भेद्यता
ज़ीरो-डे (कंप्यूटिंग) भेद्यता जिसमें लॉग4जे 2 में विवेकाधीन कोड निष्पादन सम्मलित है। वर्णनकर्ता लॉग4शेल (सामान्य भेद्यता और अनावरण -2021-44228) दिया गया था और पाया गया 24 नवंबर, 2021 को अलीबाबा समूह द्वारा अपाचे को रिपोर्ट किया गया और 9 दिसंबर, 2021 को ट्विटर पर प्रकाशित किया गया। प्रभावित सेवाओं में सम्मलित हैं क्लाउडफ्लेयर, आईक्लाउड, माइनक्राफ्ट: जावा संस्करण, स्टीम (सेवा), टेनसेंट QQ और ट्विटर । अपाचे सॉफ्टवेयर फाउंडेशन ने लॉग4शेल को 10 की अधिकतम सामान्य भेद्यता स्कोरिंग प्रणाली गंभीरता रेटिंग दी, क्योंकि लाखों सर्वर संभावित रूप से शोषण के प्रति संवेदनशील हो सकते हैं। भेद्यता की विशेषता साइबर सुरक्षा फर्म टेनेबल, इंक। द्वारा पिछले दशक की सबसे बड़ी, सबसे महत्वपूर्ण भेद्यता के रूप में की गई थी और लुनासेक के फ्री वोर्टली ने इसे आपदाजनक अनुपात की डिजाइन विफलता के रूप में चित्रित किया। संयुक्त राज्य अमेरिका में, साइबर साइबर सुरक्षा और बुनियादी ढांचा सुरक्षा एजेंसी (CISA) के निदेशक, जेन ईस्टरली ने शोषण को महत्वपूर्ण सहमति दिया और विक्रेताओं को सॉफ़्टवेयर अपडेट को प्राथमिकता देने की सलाह दी और जर्मन एजेंसी सूचना सुरक्षा के लिए संघीय कार्यालय (BSI) ने शोषण को अपने उच्चतम खतरे के स्तर पर होने के रूप में नामित किया, इसे अत्यंत महत्वपूर्ण खतरे की स्थिति (अनुवादित) कहा।  साइबर सुरक्षा के लिए कनाडाई केंद्र (CCCS) ने संगठनों से तत्काल कार्रवाई करने का आह्वान किया। भेद्यता उत्पन्न करने वाली सुविधा को विन्यास सेटिंग के साथ अक्षम किया जा सकता है, जिसे हटा दिया गया था लॉग4जे संस्करण 2.15.0-rc1 में (आधिकारिक तौर पर भेद्यता प्रकाशित होने से तीन दिन पहले 6 दिसंबर, 2021 को जारी किया गया), और दूरस्थ लुकअप को प्रतिबंधित करने वाली विभिन्न समायोजन द्वारा प्रतिस्थापित किया गया, जिससे भेद्यता कम हो गई।  अतिरिक्त सुरक्षा के लिए, जावा नामकरण और निर्देशिका इंटरफ़ेस का उपयोग करने वाली सभी सुविधाएँ, जिस पर यह भेद्यता आधारित थी, डिफ़ॉल्ट रूप से अक्षम हो जाएंगी, और संस्करण 2.16.0 से संदेश लुकअप के लिए समर्थन हटा दिया जाएगा।

यह भी देखें

 * चेनसॉ (लॉग फ़ाइल दर्शक)