2010-11-02 14 views
5

के लिए किसी भी लॉग को अक्षम करने के लिए कैसे मैं लॉगिंग के लिए org.apache.log4j.Logger का उपयोग कर रहा हूं और मैं केवल निगरानी उद्देश्यों के लिए एक jsp विकसित कर रहा हूं। यह जेएसपी कक्षाओं का उपयोग कर रहा है जो लॉग इन (आईएनएफओ स्तर) लिखते हैं जो इस निगरानी के लिए दिलचस्प नहीं है, लेकिन परेशान है, जब तक मैं अक्सर इस जेएसपी को निष्पादित करना चाहता हूं।थ्रेड

तो, मेरा प्रश्न अगला है: क्या इन आईएनएफओ लॉग को केवल थ्रेड के लिए अक्षम करने का कोई तरीका है जहां मेरा जेएसपी चल रहा है?

अगर वहाँ नहीं है, हो सकता है इस दृष्टिकोण के बिल का भुगतान हो सकता है: वहाँ किसी भी तरह से एक के लिए log4j स्तर बताने के लिए वर्ग दिया है बस कुछ ही मिलीसेकंड के लिए घातक है?

उत्तर

4

सरल log4j कॉन्फ़िगरेशन का उपयोग करके ऐसा करने का कोई आसान तरीका नहीं है।

हालांकि, आप अपना कोड उचित लॉगर पर एक कस्टम फ़िल्टर स्थापित कर सकते हैं। इंटरफ़ेस संदर्भ यहाँ देखें:

http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/spi/Filter.html

  1. एक वस्तु है कि लागू करता फिल्टर आप चाहते हैं का निर्माण।
  2. लकड़हारा LogManager.getLogger का उपयोग कर ("loggername")
  3. फिल्टर डालें का पता लगाएं।
0

क्या थ्रेड-आईडी लॉग इन किया जा रहा है? यदि हां, तो क्या आप उस धागे और आईएनएफओ स्तर के लिए परेशान लाइनों को हटाने के लिए grep -v का उपयोग नहीं कर सकते?

+0

मैं कर सकता था, लेकिन मेरी समस्या फ़ाइल सामग्री के बारे में है, इसकी "बिल्ली" के बारे में नहीं। धन्यवाद –

+0

मुझे यकीन नहीं है कि इसका मतलब क्या है। क्या आप विस्तार कर सकते हैं? –

+2

मेरी निगरानी जेएसपी प्रत्येक 30 सेकंड कहा जाता है, इसलिए लॉग बहुत बढ़ेगा। मैं नहीं चाहता कि यह जेएसपी लॉग फ़ाइल में किसी भी लाइन को डंप करे। मैं क्या चाहता हूं कि उन रेखाओं को कहीं भी नहीं छोड़ा जा रहा है –

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