Раскрашиваем журналы в консоли eclipse


105

Есть ли способ раскрасить части журналов в консоли eclipse. Я знаю, что могу отправлять ошибки и стандартные потоки и раскрашивать их по-другому, но я больше ищу что-то в строках escape-кодов ANSI (или любого другого, HTML?), Где я мог бы встроить цвета в строку, чтобы она была окрашена в журналы.

Это определенно поможет выделить важные элементы, не прибегая к странному макету, а лучше сохраните макет в настройках log4j.

вот пример того, что я ищу:

[ИНФОРМАЦИЯ] Сетка заполнена ....... false

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

log.info (String.format ("Сетка завершена ....... <blue>% s </blue>", isComplete));


В более общем плане это возможность встраивать метаинформацию в журналы, чтобы помочь в представлении этих журналов. Подобно тому, как мы помечаем содержимое веб-страниц, чтобы облегчить представление информации с помощью CSS.


вы можете использовать MulticolorLayout из jcabi-log , как описано здесь: stackoverflow.com/questions/7848325
yegor256

Интересно! ANSI-Coloring, мне стоит взглянуть на это в следующий раз, когда я включу свой Eclipse! Спасибо. Что касается JCabi, мне нравится контекстуализировать мои регистраторы, и это редко соответствует имени класса, поэтому я сомневаюсь, что статическая оболочка поможет. Мне часто нужно динамически устанавливать имя регистратора для экземпляра, поскольку это дает мне гораздо более эффективное использование информации журнала.
Newtopian

Ответы:


76

Попробуйте этот плагин Eclipse: Grep Console

[Обновление] :
Как указано комментаторами: при установке Grep Console в последней на данный момент версии Eclipse вам необходимо снять флажок «Группировать элементы по категориям» в диалоговом окне установки, чтобы увидеть доступные элементы.
Как указывает @Line, плагин теперь можно легко установить через Eclipse Marketplace без изменения каких-либо параметров.

[Обновление 2] :
Как указал @azdev , для правильного выделения:

Ввод только буквальных строк не работает. Чтобы линия была раскрашена, вы должны заключить строку .* с обеих сторон, например: .*ERROR.*


3
Плагин не подходит для работы с последней версией Eclipse (Helios).
sorin

1
исправление того, что плагин не разрабатывается активно, я задал создателю несколько вопросов и получил ответы в течение нескольких часов! Что касается шаблонов, плагин принимает регулярные выражения, поэтому при его настройке ожидаются некоторые изменения и исправления. Я бы порекомендовал установить плагин регулярных выражений, чтобы попробовать скопировать вставленные выдержки из консоли. После настройки он работает как шарм
Newtopian

2
Если кто-то ищет документацию для консоли Grep: marian.schedenig.name/wp-content/static/grepconsole_userguide
Дэнни

1
Кроме того, если кому-то нужна помощь с шаблонами регулярных выражений (эта ссылка справки также включена в диалоговое окно Grep Console в eclipse): docs.oracle.com/javase/6/docs/api/java/util/regex/Pattern. html
Дэнни Буллис

1
Пожалуйста, сначала удалите [обновление] - теперь его можно легко установить через Marketplace.
Line

18

На самом деле плагин ANSI Console добавляет поддержку escape-кода ANSI в консоль Eclipse. Однако в настоящее время у него есть ограничение: escape-коды, охватывающие несколько строк, некорректно просачиваются в другие строки при прокрутке, см. Проблему №3 .

В противном случае какой-либо плагин просмотра терминала, как описано в этом другом вопросе, может быть вариантом для некоторых.


Я использовал веб-страницу mihai-nita.net/2013/06/03/eclipse-plugin-ansi-in-console . Безупречная простая поддержка ansi в консоли!
tutejszy

9

Как уже указывал @Benjamin Grep Console, это отличный способ раскрасить вывод в консоли.

Я сделал короткое видео, чтобы продемонстрировать, как это работает, и получил ответ от создателя плагина Grep Console. Он упомянул, что выпущена консоль Grep 3.

Снимок экрана : http://www.youtube.com/watch?v=fXjgGZAxToc

Обновить сайты

Grep Console 2
http://eclipse.musgit.com
(требуется Eclipse 3.4 (Ganymede) или выше и Java 5.0 или выше)

Grep Console 3
http://eclipse.schedenig.name
(требуется Eclipse 3.7 (Indigo) или выше и Java 6.0 или выше)



4

Мы используем плагин Ganymede Eclipse, в котором я работаю, и он хорошо работает.

http://sourceforge.net/projects/ganymede/

«Плагин log4j для Eclipse, который работает аналогично бензопиле (SocketServer). Включает цвет, фильтрацию, подробную информацию и сохраняет настройки».


Это отличный плагин, к
сожалению, у

15
Наличие подключаемого модуля Eclipse под названием «ганимед» может сбить с толку.
JesperE

2

Прочтите о точке расширения org.eclipse.ui.console.consolePatternMatchListeners .


1
это правильный способ сделать это, но я думаю, что плакат надеялся, что кто-то сделал это для escape-последовательностей ansi или цветовых кодов html.
aepurniet

1

Вы можете попробовать Apache Chainsaw ( http://logging.apache.org/chainsaw/index.html ), если вы уже работаете с log4j. Позволяет определять цвета и фильтр и работает с (почти) нулевой конфигурацией.


Я пробовал это очень давно, это было очень полезно, хотя я не знаю, может ли это помочь мне в этом случае. Я ожидаю, что это даст мне больше детализации в том, как окрашиваются строки, но мне нужно больше ... Я попробую это завтра.
Newtopian

1

Я использовал этот плагин раньше, он позволяет вам раскрашивать строки журнала на основе настраиваемого регулярного выражения.

Например, когда я его использовал, любые строки со словами error были бы красными, предупреждение было бы оранжевым, информация была бы синей ... и т. Д.

Поскольку это регулярное выражение, вы можете делать что угодно. Настройте его так, чтобы строка становилась зеленой всякий раз, когда она начинается с «>>>», а затем добавьте к строке сообщения «>>>».

http://sourceforge.net/projects/logfiletools


1

Вы можете использовать ANSI Escape в плагине консоли для Eclipse. Это понадобится вам, чтобы консоль Eclipse могла интерпретировать коды выхода ANSI. Установите его и перезапустите Eclipse . Затем вы можете использовать цветовые коды ANSI, чтобы писать определенным цветом. Вот список цветовых кодов ANSI из другого ответа stackoverflow. Тогда вы можете сделать это:

public static final String ANSI_RESET = "\u001B[0m";
public static final String ANSI_RED = "\u001B[31m";

public static void main(String[] args) {
    System.out.println(ANSI_RED + "This text is red!" + ANSI_RESET);
}

Я использовал это для создания Custom Formatter для Console Handler, чтобы он отображал журналы из Logger на разных уровнях с разными цветами (журналы INFO - голубым, журналы WARNING - желтым, а журналы SEVERE - красным). Вот как я это сделал , если вам интересно.


0

Эмодзи

Вы можете использовать цвета для текста, как и другие, упомянутые в их ответах.

Но вместо этого вы можете использовать эмодзи ! например, вы можете использовать Вы можете использовать ⚠️для предупреждений и сообщений 🛑об ошибках, чтобы выделить их!

Или просто используйте эти записные книжки как цвет:

📕: error message
📙: warning message
📗: ok status message
📘: action message
📓: canceled status message
📔: Or anything you like and want to recognize immediately by color

Я лично использую значимые эмодзи для разных результатов.

Authentication Key: 🔑 
Server Error: 💣
etc.

🎁 Бонус:

Этот метод также помогает быстро сканировать и находить журналы прямо в исходном коде .

Но шрифт emoji по умолчанию в Linux по умолчанию не является красочным, и вы можете сначала сделать их красочными.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.