Показать вывод System.out.println другим цветом - PullRequest
9 голосов
/ 17 августа 2011

У меня есть большой проект для отладки, и мне было интересно, есть ли какой-нибудь способ, которым я могу использовать, чтобы изменить System.out.println метод в выводе eclipse

, например:

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

Ответы [ 4 ]

21 голосов
/ 17 августа 2011

В Eclipse самый простой подход - использовать System.err.println для линий, которые вы хотите выделить красным - я считаю, что это значение по умолчанию.(Вы можете изменить его в Предпочтения -> Выполнить / Отладка -> Консоль).

Разница не будет проявляться при работе в консоли real , конечно, но я не думаю, консоль Eclipse поддерживает экранирующие последовательности ANSI и т. Д.

РЕДАКТИРОВАТЬ: для консоли Windows я ожидаю, что экранирующие последовательности ANSI будут работать.Это не чрезвычайно переносимый, но если это не проблема, вы можете просто создать класс для соответствующей инкапсуляции escape-последовательностей, чтобы вы могли вызывать что-то вроде:

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

(I 'Возможно, эти методы вернутся к тому, какой «текущий» цвет был после каждого вызова.)

РЕДАКТИРОВАТЬ: Как отмечено в комментариях, библиотека Jansi уже существует, так что вы могли бы такжеиспользуйте это.У него нет методов, описанных выше, но я уверен, что он все равно будет делать то, что вы хотите ...

7 голосов
/ 05 сентября 2014

Пожалуйста, обратитесь к следующему коду. Также обратитесь к этой ссылке для цветовых кодов ANSI. 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");
    }   
}
2 голосов
/ 17 августа 2011

Пожалуйста, посмотрите на Янси ( Джанси Гитхуб )

Jansi - это небольшая библиотека Java, которая позволяет вам использовать экранирование ANSI последовательности для форматирования вывода на консоль, который работает даже в Windows.

0 голосов
/ 17 августа 2011

Кажется, что вы хотите выделить выходные данные System.out.println(), используя разные цвета, чтобы помочь вам в отладке, почему бы не перенаправить весь вывод System.out в файл в точке входа вашей программы:

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

Затем с помощью некоторого бесплатного и портативного инструмента мониторинга файла журнала в реальном времени, который имеет настраиваемую функцию подсветки, используя различные цвета, такие как BareTail , для просмотра этого файла.

...