हम कई वेब ऐप्स के लिए log4j से लॉगबैक करने के लिए माइग्रेट कर रहे हैं। हमारे आवेदन के बंद में हम वर्तमान में फोन:क्या लॉगबैक का उपयोग करके बंद होने पर मुझे ईवेंट फ़्लश करना होगा?
org.apache.log4j.LogManager.shutdown();
कौन सा सभी async प्रवेश फ्लश और सभी बाहरी संसाधनों (फाइलें, सॉकेट) बंद करने के लिए माना जाता है।
क्या लॉगबैक में कुछ समान है या क्या यह किसी भी तरह शटडाउन पर स्वचालित रूप से फ्लश करता है?
माइक
दिलचस्प सवाल - मैं वास्तव में कभी नहीं इस बारे में सोचा था। चूंकि आपको बफर आउटपुट में log4j को स्पष्ट रूप से कॉन्फ़िगर करना है, इसलिए मुझे लगता है कि शटडाउन को केवल उस मामले में ही बुलाया जाना चाहिए। मेरा मानना है कि डिफ़ॉल्ट रूप से slf4j बफर, हालांकि। प्रत्येक लॉग स्टेटमेंट के बाद –
लॉगबैक फ्लश करता है, इसलिए जब तक आप कुछ फंकी नहीं कर रहे हैं, तब तक स्पष्ट स्टॉप() कॉल की आवश्यकता नहीं है। –
@ डेविड रूससेल ने उस वक्तव्य को मुझे [लॉगबैक परिशिष्ट] (http://logback.qos.ch/manual/appenders.html) देखा। दरअसल: _By डिफ़ॉल्ट, प्रत्येक लॉग इवेंट तुरंत अंतर्निहित आउटपुट स्ट्रीम में फंस जाता है। यह डिफ़ॉल्ट दृष्टिकोण इस अर्थ में सुरक्षित है कि यदि आपका एप्लिकेशन सही ढंग से बंद करने के बिना बाहर निकलता है तो लॉगिंग ईवेंट खो नहीं जाते हैं। हालांकि, लॉगिंग थ्रूपुट में उल्लेखनीय वृद्धि के लिए, आप अंतर्निहित एनकोडर की तत्काल फ्लश संपत्ति को झूठी पर सेट करना चाह सकते हैं। एनकोडर्स और विशेष रूप से लेआउटप्रैपिंग एन्कोडर को एक अलग अध्याय में वर्णित किया गया है ._ –