2012-11-12 16 views
5

मुझे कक्षा में एक विधि है जो बहुत वर्बोज़ है, और इससे लॉग पढ़ने में कठिनाई होती है। मैं उसी विधि के स्तर को बदलकर अपनी लॉगिंग को कम करना चाहता हूं, उसी वर्ग में अन्य विधियों को अनलर्टर छोड़कर। क्या यह संभव है?क्या मैं log4j का उपयोग कर जावा विधि के भीतर लॉगिंग स्तर सेट कर सकता हूं?

+0

आप अपना खुद का लॉगिंग स्तर घोषित कर सकते हैं और उस विधि में इसका उपयोग कर सकते हैं। एक और तरीका थोड़ा हैकी है और विधि में लॉग स्तर को बढ़ाने में शामिल है (Logger.setLevel() के माध्यम से), लेकिन यह वास्तव में चालाक है – BigMike

उत्तर

6

आप उस वर्ग के लिए स्तर कॉन्फ़िगरेशन बदल सकते हैं लेकिन कक्षा में विशिष्ट तरीकों के लिए नहीं। जो भी आप चाहते हैं उसे करने का एकमात्र तरीका उस विधि के अंदर एक अलग लॉगर का उपयोग करना होगा और फिर उसे एक अलग स्तर पर कॉन्फ़िगर करना होगा।

उम्मीद है कि इससे मदद मिलती है।

0

मुझे नहीं लगता कि यह सीधे posible केवल एक विधि के लिए लॉगिंग प्रक्रिया में परिवर्तन करना

3

आप एक प्रति विधि के आधार पर लॉगिंग स्तर को बदल नहीं सकते है। "लॉगर" नियंत्रण के लिए ग्रैन्युलरिटी का बेहतरीन स्तर है। आम तौर पर, लॉगर इंस्टेंस और कक्षाओं के बीच एक-से-एक संबंध होता है ... हालांकि यह इस बात पर निर्भर करता है कि एप्लिकेशन को कोड कैसे किया गया था।

यदि आप कोड बदल सकते हैं, तो मैं अनुशंसा करता हूं कि आप शोर विधि के लिए विशेष लॉगर ऑब्जेक्ट बनाएं ताकि आप मौजूदा लॉगर का उपयोग करने वाले दूसरे कोड से स्वतंत्र रूप से इसे नियंत्रित कर सकें।

(या शायद सिर्फ विधि के लकड़हारा कॉल बदल जाते हैं।) आप कोड को बदल नहीं सकते हैं, तो आप इस तरह के लॉग फाइल के बाद प्रसंस्करण, या लेखन और एक कस्टम Appender कि को दबा को विन्यस्त के रूप में करने के लिए "हैक" का सहारा लेना पड़ सकता है अवांछित लॉग संदेश।

-1

यह संभव है। ओपी पर मेरी टिप्पणी देखें।

यह चाल एक कस्टम स्तर (TRACE से कम) बना रही है (जैसा कि here में बताया गया है) और उस वर्जन स्तर को बहुत वर्बोज़ विधियों में उपयोग करें।

उस विधि में OFC आप लॉगिंग विधियों के लिए उपयोगकर्ता लॉगर शॉर्टकट नहीं करेंगे, लेकिन आपको Logger.log (स्तर, ऑब्जेक्ट) और Logger.log (स्तर, ऑब्जेक्ट, थॉवेबल) विधियों का सहारा लेना चाहिए।

संबंधित मुद्दे

 संबंधित मुद्दे