2009-04-21 16 views
12

बनाने का ओवरहेड मेरे पास मेरे एप्लिकेशन में कुछ वेबसाइसेस हैं और मैं उन्हें webservice नाम के आधार पर अलग-अलग फ़ाइलों में लॉग करना चाहता हूं। उसके लिए मैंक्या लॉग 4j लॉगर

myLogger = Logger.getLogger(logKey); 

साथ वालों बनाने रहा हूँ अगर मैं इन वालों को कैश उन्हें हर कॉल के लिए बनाने से बचना चाहिए मैं सोच रहा हूँ, या मैं भूमि के ऊपर अनदेखा कर सकते हैं।

+0

विश्वास न करें कि लोग आपको क्या कहते हैं ... स्रोत का उपयोग करें! – zvikico

उत्तर

23

लॉगर्स पहले से ही लॉग लॉग द्वारा डिफ़ॉल्ट लॉग भंडार (Hierarchy) का उपयोग कर कैश किए गए हैं। दूसरे शब्दों में, यह सिर्फ एक हैशटेबल लुकअप है।

हालांकि, मेरे अनुभव में आप लॉगर स्थिर बनाने के लिए हैं, इसलिए यह केवल प्रति वर्ग एक बार बुलाया जाता है।

+4

+1 लेकिन कम प्रतिष्ठा वाले लोगों को वोट देना अधिक मजेदार है – willcodejavaforfood

+0

लॉगर स्थिरता आपको रनटाइम पर अपने स्तर को बदलने से रोक नहीं सकता है (उदाहरण के लिए एमबीन के माध्यम से)? सिद्धांत में नहीं, लेकिन मैंने सोचा कि जावा लॉगिंग के मामले में था। –

+0

मुझे * ऐसा नहीं लगता *। मुझे लगता है कि निर्मित लॉगर में जमे हुए होने की बजाय स्तर की सामग्री गतिशील रूप से जांच की जाती है। –

9

यह विधि Logger.getLogger (logKey) logKey में दिए गए नाम के साथ लॉगर के लिए लॉगर कैश में दिखता है। यदि यह अस्तित्व में नहीं है तो यह एक बनाता है। लॉगर नाम के लिए सबसे पहले कॉल करें, लॉगर बनाया जाएगा लेकिन बाद में कॉल इसे कैश से प्राप्त करेगी, इसलिए आपको अपने कोड में को संभालने की आवश्यकता नहीं है।

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