2012-02-20 29 views
12

का रंग बदलने के लिए मैं वर्तमान में जावा प्रोजेक्ट पर काम कर रहा हूं और हम लॉगिंग का उपयोग कर रहे हैं। जब एक लॉग बनाया जाता है तो यह हमेशा सादा काले पाठ में मुद्रित होता है, जो भी लॉगिंग स्तर (INFO, ERROR, आदि)लॉगिंग आउटपुट लॉग 4j

मैं इन आउटपुट के रंग को ओवरराइड कैसे कर सकता हूं उदाहरण के लिए सभी ERROR लॉग लाल हो जाएंगे चेतावनी लॉग नारंगी आदि

धन्यवाद

हो जाएगा

संपादित करें: मैं ANSIColorLayout फाइल डाउनलोड करने में कामयाब रहे और मेरे log4j.properties अब यह करने के लिए संदर्भित करता है। हालांकि मैं निम्नलिखित त्रुटियाँ मिलती है:

log4j:WARN No such property [all] in org.apache.log4j.ConsoleAppender. 
log4j:WARN No such property [reset] in org.apache.log4j.ConsoleAppender. 
log4j:WARN No such property [stacktrace] in org.apache.log4j.ConsoleAppender. 
log4j:WARN No such property [info] in org.apache.log4j.ConsoleAppender. 
log4j:WARN No such property [error] in org.apache.log4j.ConsoleAppender. 
log4j:WARN No such property [defaultcolor] in org.apache.log4j.ConsoleAppender. 

मेरे log4j.properties फ़ाइल इस तरह दिखता है:

log4j.rootLogger = DEBUG, CA, FA 

log4j.appender.CA = org.apache.log4j.ConsoleAppender 
log4j.appender.CA.layout = balle.logging.ANSIColorLayout 
log4j.appender.CA.layout.ConversionPattern=%-5p [%d{MM-dd-yyyy HH:mm:ss}] %c - %m%n 
log4j.appender.CA.all=\u001B[1;37m log4j.appender.A1.fatal=\u001B[1;31m 
log4j.appender.CA.error=\u001B[0;31m log4j.appender.A1.warn=\u001B[1;33m 
log4j.appender.CA.info=\u001B[0;37m log4j.appender.A1.debug=\u001B[0;36m 
log4j.appender.CA.reset=\u001B[1;37m 
log4j.appender.CA.stacktrace=\u001B[0;31m 
log4j.appender.CA.defaultcolor=\u001B[1;37m 

मेरा अनुमान है कि मैं अपने स्वयं के कस्टम ConsoleAppender उपयोग करने के लिए माना जाता रहा हूँ है? क्या किसी के पास कोई विचार है?

धन्यवाद

उत्तर

6

आप विभिन्न ANSIColorLayout.java कार्यान्वयन में से एक डाउनलोड कर सकते हैं। PatternLayout कक्षा को विस्तारित करके ये "रंग लॉगर्स" काम करते हैं।

तो फिर तुम बस कुछ इस तरह अपने log4j conf में कर सकते हैं: एक ANSIColorLayout.java को

og4j.appender.stdout.layout=com.acme.ANSIColorLayout 

यहाँ एक लिंक भी है का उपयोग करने के लिए तैयार:

http://code.google.com/p/a-distributed-file-system/source/browse/trunk/DistributedFileSystem/ui/net/dfs/ui/ANSIColorLayout.java

+0

लिंक होना चाहिए टूटा हुआ आप Google पर * "ANSICOLORLayout PatternLayout" बढ़ा सकता है * और आपको अन्य लिंक मिलेंगे:) – TacticalCoder

+0

यह एक बेवकूफ सवाल की तरह प्रतीत हो सकता है लेकिन मैं कलर क्लास का उपयोग करने के लिए log4j conf को कैसे संपादित करूं ? मुझे यकीन नहीं है कि मेरे पास है? –

+0

@Dan_Dan_Man: यह आपके द्वारा उपयोग की जा रही log4j conf फ़ाइल के प्रकार पर निर्भर करता है। मैंने उस लाइन को जोड़ा जो रंगीन लॉगर का उपयोग करने के लिए * stdout * आउटपुट को बदलने की अनुमति देता है। – TacticalCoder

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