2012-09-17 9 views
11

मैं अपने जावा एप्लिकेशन में लॉगिंग के लिए slf4j का उपयोग कर रहा हूं। इसमें बहुत लॉगिंग और लॉग निगरानी शामिल है।
कभी-कभी लॉग से जानकारी को पढ़ने और ढूंढना वाकई मुश्किल होता है जब पूरे लॉग को काले रंग में मुद्रित किया जाता है।
बस इसे और अधिक पठनीय बनाने के लिए, क्या विभिन्न रंगों में विभिन्न प्रकार के संदेशों को लॉग करना संभव है?
उदाहरण के लिए लाल रंग में एक त्रुटि स्तर संदेश या एक अलग फ़ॉन्ट आकार और नीले रंग में सभी जानकारी स्तर संदेश और एक अलग फ़ॉन्ट आकार।
रंगों के साथ संदेश प्रकार लॉग करने के लिए slf4j स्वरूपण

कोई सुझाव या सहायता का स्वागत है। Thnx।

+0

देखना चाहता हूँ देखना शायद यह मदद करता है अगर आप you'r आईडीई का नाम डाल दिया। और आप पूछ सकते हैं कि त्रुटि संदेशों के लिए Stdout के बजाय Stderr पर मानचित्र कैसे करें। – d0x

+0

लॉग फ़ाइल एक सादा पाठ फ़ाइल है। रंग की कोई अवधारणा नहीं है। हालांकि, हो सकता है कि आप उस लॉग को देखने के लिए कुछ ढूंढ सकें जो आपके लिए रंग कोड कर सकता है ... – GreyBeardedGeek

उत्तर

3

दो समाधान मेरे दिमाग में आते हैं।

  1. अपने फ़ाइल appender विन्यास में, आप पैटर्न कॉन्फ़िगर लॉग स्तर (त्रुटि, चेतावनी दी है, आदि) में शामिल कर सकते हैं: वे रंग, लेकिन वैकल्पिक समाधान नहीं हैं। फिर आप स्तर से संदेशों को फ़िल्टर करने के लिए फ़ाइल को grep कर सकते हैं।

  2. आप विभिन्न फ़ाइल थ्रेसहोल्ड के साथ दो फ़ाइल एपेंडर (दो अलग लॉग फ़ाइलों के लिए) कॉन्फ़िगर कर सकते हैं। उदाहरण के लिए, एक डिबग स्तर से ऊपर सभी लॉग लॉग इन करेगा (ताकि जानकारी, चेतावनी दी है, त्रुटि) में की logs.txt मान लीजिए और अन्य errors.txt

आशा है कि यह मदद करता है में केवल त्रुटियों को लॉग्स लॉग इन करेगा।

1

slf4j लॉगिंग के रंग बदलने के लिए संभव नहीं है, क्योंकि कोई स्वरूपक नहीं हैं। एसएलएफ 4 जे आपके एप्लिकेशन और कुछ लॉगिंग सुविधा के बीच एक मिडलवेयर है, उदाहरण के लिए, लॉग 4j या लॉगबैक।

आप लॉग 4j आउटपुट में रंग बदल सकते हैं, जैसा कि here समझाया गया है। मैं MulticolorLayoutjcabi-log

+0

उत्तर के लिए धन्यवाद, लेकिन आपके सभी सुझाव कंसोल में रंगीन आउटपुट प्राप्त करने के लिए हैं। चूंकि मुझे कई प्रणालियों से लॉग फाइलों को इकट्ठा करने और उन्हें विश्लेषण करने की आवश्यकता है, इसलिए मुझे रंगीन फाइलों को रंगीन होने की आवश्यकता है। – Panshul

+0

"फाइलों को रंगीन करने के लिए लॉग करें"? एचएम ... :) – yegor256

2

से कुछ आपको ध्यान में रखना होगा।

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

दूसरा, "रंग" ज्यादातर मामलों में कुछ सार्थक नहीं है। उदाहरण के लिए, यदि आप एक सादे पाठ लॉग फ़ाइल का जिक्र कर रहे हैं, तो कुछ भी नहीं है कि हम रंग को नियंत्रित कर सकें क्योंकि वे सभी सादा पाठ हैं (जब तक आपके संपादक के पास आपके लॉग संदेश प्रारूप के लिए अंतर्निहित विशेष वाक्यविन्यास हाइलाइट नहीं होता है)। यदि आप कंसोल/टर्मिनल में रंग देखना चाहते हैं, या यदि आप अपने लॉग को फ़ाइल प्रारूप में आउटपुट कर रहे हैं तो यह सार्थक हो सकता है जो आपको रंगीन जानकारी (जैसे HTML) रखने की अनुमति देता है।

इन दोनों विचारों को ध्यान में रखते हुए, मेरा सुझाव यहां दिया गया है।

लॉगबैक में कंसोल आउटपुट में http://logback.qos.ch/manual/layouts.html#coloring रंग के लिए अंतर्निहित समर्थन है। यदि आप कंसोल आउटपुट में रंग देखने के लिए रास्ता तलाश रहे हैं, और आपको लॉगबैक का उपयोग करने की अनुमति है, तो यह वही है जो आप खोज रहे हैं।

+0

उत्तर के लिए धन्यवाद, लेकिन मैं Log4j का उपयोग कर रहा हूं और मुझे विभिन्न प्रणालियों से लॉग फ़ाइलों को इकट्ठा करने और उन्हें विश्लेषण करने की आवश्यकता है .. इसलिए कंसोल में रंगीन आउटपुट प्राप्त करने का कोई उपयोग नहीं है। मुझे लॉग फ़ाइल में रंग चाहिए .. लेकिन सुझाव के लिए धन्यवाद, मैं HTML आउटपुट का प्रयास करूंगा। – Panshul

+0

यदि आप रंग के साथ एक सादे पाठ फ़ाइल लिख सकते हैं, तो आप इसकी उम्मीद कर सकते हैं। हालांकि, यह कुछ ऐसा है जो अविश्वसनीय है। आप अपना खुद का दर्शक लिख सकते हैं जो आपके लॉग संदेश का विश्लेषण करता है और स्वरूपण करता है और आपको प्रदर्शित करता है। मैं शर्त लगाता हूं कि आप ऐसा करने के इच्छुक हैं। एचटीएमएल प्लस कुछ सीएसएस का उपयोग शायद आपके लिए जाने का तरीका है। –

1

मैं लॉगिंग स्तर और पैकेज दोनों के लिए फ़िल्टर का उपयोग करता हूं। यह उदाहरण स्प्रिंग बूट एप्लिकेशन से आता है।गुण

logging.level.root=warn 
    logging.level.org.springframework=warn 
    logging.level.org.hibernate=warn 
    logging.level.org.starmonkey.brown=DEBUG 

इस तरह से मैं केवल संदेशों मैं

+0

धन्यवाद !!! इससे मेरा काम बनता है! मैं इसे खोजने से पहले 'org.slf4j.Logger' के लिए कुछ घंटों के लिए googling था। यह पता चला है कि यह वसंत बूट सेटिंग्स से संबंधित है, slf4j लॉगर के लिए नहीं। एक बार फिर धन्यवाद! – abguy

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