मैं एक लाइब्रेरी लिख रहा हूं जो विभिन्न कार्यों को एकत्रित करता है जो मैं विभिन्न अनुप्रयोगों में उपयोग करूँगा। मैं चाहता हूं कि यह लाइब्रेरी के उपयोगकर्ता के लिए लॉग बयान उत्पन्न करे, यानी, यदि मैं एक एप्लीकेशन बना रहा हूं और मैं लाइब्रेरी का उपयोग कर रहा हूं, तो मैं पुस्तकालय चाहता हूं कि मुझे लॉग इन स्टेटमेंट जेनरेट करें। मैं उसको कैसे करू? चूंकि लॉग फ़ाइल को एप्लिकेशन के डेवलपर द्वारा कॉन्फ़िगर किया जाएगा, मेरी लाइब्रेरी कैसे लॉग इन करेगी?जावा लाइब्रेरी के लिए लॉगर
उत्तर
आप एक पुस्तकालय विकसित कर रहे हैं दूसरों के लिए अपने आवेदन में शामिल होंगे आप मुखौटा लॉगइन करने में उपयोग करना चाहिए। अन्यथा आप अपनी लाइब्रेरी के उपयोगकर्ताओं को फ्रेमवर्क के अलावा उनके आवेदन के लिए चुना गया चुनने वाले लॉगिंग फ्रेमवर्क को कॉन्फ़िगर करने और शामिल करने के लिए मजबूर करते हैं।
उदाहरण के लिए यदि आप log4j उपयोग करते हैं लेकिन अपने पुस्तकालय का उपयोग कर डेवलपर का उपयोग करता logback वह एक log4j विन्यास फाइल और log4j जार शामिल करने के लिए है (या other measures लेने के लिए) अपने पुस्तकालय खुश करने के लिए होगा।
लॉगिंग Facades इस समस्या (अपाचे कॉमन्स लॉगिंग से) का समाधान:
जब एक पुस्तकालय यह जानकारी लॉग इन करने के बहुत उपयोगी है लेखन। हालांकि वहां कई लॉगिंग कार्यान्वयन हैं, और लाइब्रेरी एक संपूर्ण व्यक्ति के उपयोग को लागू नहीं कर सकती है जो लाइब्रेरी का हिस्सा है।
लॉगिंग पैकेज विभिन्न लॉगिंग कार्यान्वयन के बीच एक अति पतली पुल है। कॉमन्स-लॉगिंग एपीआई का उपयोग करने वाली लाइब्रेरी का उपयोग रनटाइम पर किसी भी लॉगिंग कार्यान्वयन के साथ किया जा सकता है। कॉमन्स-लॉगिंग कई लोकप्रिय लॉगिंग कार्यान्वयन के लिए समर्थन के साथ आता है, और दूसरों के लिए एडेप्टर लिखना एक उचित सरल कार्य है।
या SLF4J से तर्क:
जावा या (SLF4J) के लिए सरल लॉगिंग फसाड विभिन्न प्रवेश चौखटे, उदा के लिए एक सरल मुखौटा या अमूर्त रूप में कार्य करता java.util.logging, log4j और लॉगबैक, अंतिम उपयोगकर्ता को परिनियोजन समय पर इच्छित लॉगिंग फ्रेमवर्क में प्लग करने की इजाजत देता है।प्रवेश अग्रभाग के लिए
उम्मीदवार हैं:
आपका उदाहरण भ्रामक है। डेवलपर एक ही समय में तीसरे पक्ष के लिए कोड और log4j एडाप्टर के लिए SLF4J API का उपयोग कर सकता है। फिर वह सिर्फ कुछ एसएलएफ 4 जे बैकएंड को लॉगबैक की तरह चुनता है। वास्तव में यह एसएलएफ 4 जे का एक कारण है, यह इतना आसान है। कोई log4j कॉन्फ़िगरेशन आवश्यक नहीं है। –
@RostislavMatl क्या आप एसएलएफ 4 जे "ब्रिजिंग मॉड्यूल" (http://www.slf4j.org/legacy.html) के बारे में बात कर रहे हैं? ये आपको एक लाइब्रेरी का उपयोग करने की अनुमति देता है जो log4j का उपयोग करता है ... आंतरिक रूप से और इसके लॉग संदेशों को SLF4J पर रीडायरेक्ट करता है (जिसे लॉगबैक द्वारा समर्थित किया जा सकता है)। यदि आप लाइब्रेरी के उपयोगकर्ता हैं तो यह निश्चित रूप से एक शानदार विशेषता है। हालांकि जब आप लाइब्रेरी के डेवलपर हैं तो आपको अपने उपयोगकर्ताओं को ऐसे हुप्स से कूदने के लिए क्यों मजबूर होना चाहिए? एक मुखौटा का उपयोग क्यों न करें? चूंकि एसएलएफ 4 जे पृष्ठ बताता है कि ये समाधान "आपके नियंत्रण से परे सॉफ्टवेयर के लिए उपयुक्त" हैं। अगर मैंने आपको गलत समझा है तो कृपया मुझे सही करें। – Joe23
स्पष्ट रूप से हम विभिन्न चीजों के बारे में बात करते हैं। आपने लिखा: "यदि आप log4j का उपयोग करते हैं लेकिन आपकी लाइब्रेरी का उपयोग कर डेवलपर लॉगबैक का उपयोग करता है तो उसे log4j कॉन्फ़िगरेशन शामिल करना होगा" - यह सच नहीं है। और यह एक ही समय में एक बुरा समाधान है। मैंने यह नहीं बताया कि आप एक नया कोड विकसित करते समय SLF4J का उपयोग नहीं कर सकते हैं। मैंने लाइब्रेरी उपयोगकर्ता बिंदु या दृश्य चुना है क्योंकि आप अक्सर उपयोगकर्ता को निर्माता बनाते हैं। –
इस के लिए मानक समाधान हैं:
- log4j: http://logging.apache.org/log4j/
- SLF4J: http://www.slf4j.org/
- JDK निर्मित लॉगर: https://docs.oracle.com/javase/8/docs/technotes/guides/logging/overview.html
वे सब के सब आप कॉन्फ़िगर करने की अनुमति देगा कॉन्फ़िगरेशन के माध्यम से लॉग फ़ाइल स्थान।
- 1. लाइब्रेरी के प्रत्येक उदाहरण के लिए अलग लॉगर
- 2. सीधे लाइब्रेरी बनाने के लिए जावा लाइब्रेरी?
- 3. जावा लाइब्रेरी के लिए zip64
- 4. जावा के लिए एसएसएच लाइब्रेरी
- 5. जावा के लिए गणित लाइब्रेरी
- 6. जावा के लिए यूपीएनपी लाइब्रेरी
- 7. सिंगलटन लॉगर, स्थैतिक लॉगर, फैक्टरी लॉगर ... लॉग कैसे करें?
- 8. जावा लॉगर केवल फ़ाइल करने के लिए, कोई स्क्रीन आउटपुट
- 9. एक विशिष्ट पैकेज के लिए जावा लॉगर सेट करना
- 10. लॉगर
- 11. लॉगर
- 12. जावा के लिए रैखिक प्रोग्रामिंग टूल/लाइब्रेरी
- 13. प्रोग्राम बनाने के लिए अनुशंसित जावा लाइब्रेरी
- 14. क्या स्टेग्नोग्राफ़ी के लिए जावा लाइब्रेरी है?
- 15. जावा या एंड्रॉइड के लिए ePub लाइब्रेरी
- 16. जावा के लिए सर्वश्रेष्ठ iCalendar लाइब्रेरी?
- 17. जावा के लिए FinTS या HBCI लाइब्रेरी
- 18. डेटाबेस स्कीमा पढ़ने के लिए जावा लाइब्रेरी
- 19. जावा लाइब्रेरी कक्षाओं के लिए स्रोत कोड
- 20. स्केल और जावा के लिए बिल्डर लाइब्रेरी
- 21. जावा के लिए सर्वश्रेष्ठ HTTP लाइब्रेरी?
- 22. प्ले लॉगर
- 23. विंस्टन लॉगर नाम
- 24. log4j और लॉगर
- 25. एक लॉगर
- 26. पायथन लॉगर
- 27. उसी लॉगर
- 28. पाइथन लॉगर
- 29. जावा लाइब्रेरी ज़िप फ़ाइलों के साथ काम करने के लिए
- 30. स्काला के लिए ग्राफ लाइब्रेरी
वसंत ढांचे पर एक झांक लें। विशेष रूप से, निर्भरता इंजेक्शन क्षमता वह हिस्सा है जो आपके लिए सबसे उपयोगी है। – cdeszaq