2011-08-17 10 views
7

मैं डिबग करने के लिए एक बड़ा प्रोजेक्ट है, और मैं सोच रही थी अगर वहाँ वैसे भी है मैं उदाहरण के लिए ग्रहणएक और रंग के साथ दिखाएँ System.out.println उत्पादन

के उत्पादन में System.out.println प्रक्रिया में परिवर्तन करना इस्तेमाल कर सकते हैं:

System.out.println("I want this to be red"); 
System.out.println("I want this to be blue"); 
System.out.println("I want this to be yellow"); 
System.out.println("I want this to be magenta"); 

अधिक पठनीयता के लिए।

EDIT

sysout साथ

मैं इस sysout

syserr साथ

मैं इस syserr

+0

संभव डुप्लिकेट (http [System.out.println का उपयोग कर कंसोल में रंग मुद्रित करने के लिए कैसे?]: // stackoverflow।कॉम/प्रश्न/57624 9 1/कैसे-प्रिंट-रंग-इन-कंसोल-उपयोग-सिस्टम-आउट-प्रिंटलएन) –

+0

यहां रिपोर्ट की गई अधिकांश विधियां सिस्टम कंसोल पर काम करती हैं लेकिन ग्रहण कंसोल पर नहीं, जो सवाल था । –

उत्तर

20

ग्रहण के भीतर है, सरल दृष्टिकोण लाइनों के लिए System.err.println उपयोग करने के लिए किया जाएगा आप लाल रंग में होना चाहता हूँ है - मेरा मानना ​​है कि यह डिफ़ॉल्ट है। (आप इसे प्राथमिकताएं -> रन/डीबग -> कंसोल में बदल सकते हैं)।

यही अंतर है जब एक असली निश्चित रूप से सांत्वना में चल रहा है, लेकिन मुझे नहीं पता लगता ग्रहण सांत्वना नहीं दिखाया जाएगा एएनएसआई रंग भागने दृश्यों आदि

संपादित समर्थन करता है: के लिए Windows कंसोल , मैं काम करने के लिए की उम्मीद करूँगा। यह बेहद पोर्टेबल नहीं है, लेकिन अगर यह है कि एक समस्या नहीं है, तो आप सिर्फ एक वर्ग को उचित रूप से बच दृश्यों को संपुटित करने के लिए बना सकते हैं, ताकि आप की तरह कुछ कह सकते हैं:

ansiConsole.printRed("sample line in red"); 
ansiConsole.printBlue("sample line in blue"); 

(मैं शायद उन तरीकों वापसी बनाने चाहते हैं प्रत्येक कॉल के बाद "वर्तमान" रंग जो कुछ भी था।)

संपादित करें: टिप्पणियों में उल्लेख किया गया है, Jansi लाइब्रेरी पहले से मौजूद है, इसलिए आप इसका भी उपयोग कर सकते हैं। यह ऊपर वर्णित विधि नहीं है, लेकिन मुझे लगता है कि यह अभी भी आप क्या चाहते हैं क्या करेंगे यकीन है ...

+0

मैंने syserr की कोशिश की लेकिन मेरे पास एक ही परिणाम नहीं है। –

+0

@ ओपनमाइंड: हाँ, लेकिन एक पूरी तरह से अलग तरीके से। आपका मतलब क्या है "मेरे पास पहले परिणाम नहीं है"? –

+0

@ ओपनमाइंड: प्रत्येक लिखने के बाद फ़्लशिंग करने का प्रयास करें - मुझे संदेह है कि यह एक बफरिंग समस्या है। –

2

कृपया Jansi (Jansi's Github)

Jansi एक नजर है एक छोटा सा जावा है लाइब्रेरी जो आपको अपने कंसोल आउटपुट को प्रारूपित करने के लिए एएनएसआई एस्केप अनुक्रमों का उपयोग करने की अनुमति देती है जो विंडोज़ पर भी काम करती है।

+0

यू इसका उपयोग कर सकते हैं: http://www.java2s.com/Code/Jar/j/Downloadjansi14jar.htm यदि आप संग्रह के बजाय एक जार का उपयोग करना चाहते हैं। इसने ग्रहण में मेरी आयात समस्या का समाधान किया। – Eagle

0

ऐसा लगता है कि आप, क्यों अपने कार्यक्रम प्रवेश बिंदु में एक फाइल करने के लिए System.out के सभी उत्पादन रीडायरेक्ट न करें आदेश डिबग करने में मदद करने के लिए अलग अलग रंग का उपयोग कर System.out.println() के उत्पादन में हाइलाइट करना चाहते हैं:

FileOutputStream fis = new FileOutputStream(new File("log.txt")); 
PrintStream out = new PrintStream(fis); 
System.setOut(out); 

फिर कुछ मुफ्त और पोर्टेबल रीयल-टाइम लॉग फ़ाइल निगरानी उपकरण का उपयोग करना जिसमें इस फ़ाइल को देखने के लिए BareTail जैसे विभिन्न रंगों का उपयोग करके कॉन्फ़िगर करने योग्य हाइलाइटिंग फ़ंक्शन है।

5

कृपया निम्नलिखित कोड का संदर्भ लें। इस लिंक को एएनएसआई रंग कोड के लिए भी देखें। की http://en.wikipedia.org/wiki/ANSI_escape_code

public class ColourConsoleDemo { 
    public static void main(String[] args) { 
     // TODO code application logic here 
     System.out.println("\033[0m BLACK"); 
     System.out.println("\033[31m RED"); 
     System.out.println("\033[32m GREEN"); 
     System.out.println("\033[33m YELLOW"); 
     System.out.println("\033[34m BLUE"); 
     System.out.println("\033[35m MAGENTA"); 
     System.out.println("\033[36m CYAN"); 
     System.out.println("\033[37m WHITE"); 
    } 
} 
+0

अच्छा जवाब! यह मेरे लिए काम किया। धन्यवाद। – androidevil

+1

असल में \ 033 [0m' रीसेट के लिए खड़ा है। –

+0

शानदार! मुझे लगता है कि यह स्वीकार्य उत्तर होना चाहिए – doc

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