Pokoloruj dzienniki w konsoli zaćmienia


105

Czy istnieje sposób na pokolorowanie części dzienników w konsoli zaćmienia. Wiem, że mógłbym wysłać do strumieni błędów i standardowych strumieni i pokolorować je inaczej, ale bardziej szukam czegoś w wierszach kodów ucieczki ANSI (lub jakikolwiek inny, HTML?), Gdzie mógłbym osadzić kolory w ciągu, aby był pokolorowany w dzienniki.

To z pewnością pomogłoby wyróżnić ważne fragmenty bez uciekania się do dziwnego układu, raczej zachowaj układ zgodnie z konfiguracjami log4j

oto przykład tego, czego szukam:

[INFO] Siatka jest kompletna ....... fałsz

gdzie pogrubione części byłyby na niebiesko, to zabarwienie można w pewnym stopniu kontrolować za pomocą aplikacji. tak (tagi są koncepcyjne i arbitralne, ale masz pomysł):

log.info (String.format ("Siatka jest kompletna ....... <blue>% s </blue>", isComplete));


Mówiąc bardziej ogólnie, jest to możliwość osadzania metainformacji w dziennikach, aby ułatwić prezentację tych dzienników. Podobnie jak tagujemy zawartość stron internetowych, aby ułatwić prezentację informacji przez CSS.


możesz użyć MulticolorLayout z jcabi-log , jak wyjaśniono tutaj: stackoverflow.com/questions/7848325
yegor256

Ciekawe! ANSI-Coloring, powinienem rzucić okiem na to następnym razem, gdy odpalę moje Eclipse! dzięki. Jeśli chodzi o JCabi, lubię kontekstualizować moje loggery i rzadko to pasuje do nazwy klasy, więc wątpię, by statyczne opakowanie załatwiło sprawę. Często muszę dynamicznie ustawić nazwę programu rejestrującego na instancję, ponieważ zapewnia to znacznie wydajniejsze wykorzystanie informacji logowania.
Newtopian

Odpowiedzi:


76

Spróbuj z tą wtyczką Eclipse: Grep Console

[Aktualizacja] :
Jak podkreślają komentatorzy: Podczas instalowania Grep Console w najnowszej wersji Eclipse, musisz odznaczyć „Grupuj elementy według kategorii” w oknie dialogowym Instaluj, aby zobaczyć dostępne elementy.
Jak wskazał @Line, wtyczkę można teraz łatwo zainstalować za pośrednictwem Eclipse Marketplace bez zmiany jakichkolwiek opcji.

[Aktualizacja 2] :
Jak wskazał @azdev , aby uzyskać właściwe podświetlenie:

Wpisywanie tylko literalnych ciągów nie działa. Aby linia została pokolorowana, musisz zamknąć sznurek .* po obu stronach, na przykład: .*ERROR.*


3
Wtyczka wydaje się nie działać z najnowszym Eclipse (Helios).
sorin

1
korekta dotycząca braku aktywnego rozwoju wtyczki, zadałem twórcy kilka pytań i otrzymałem odpowiedzi w ciągu kilku godzin! Jeśli chodzi o wzorce, wtyczka przyjmuje wyrażenia regularne, więc podczas jej konfigurowania można się spodziewać pewnych poprawek i bałaganu. Zalecałbym zainstalowanie wtyczki wyrażeń regularnych, aby spróbować skopiować wklejone fragmenty z konsoli. Po skonfigurowaniu działa jak urok
Newtopian,

2
Na wypadek, gdyby ktoś szukał dokumentacji dla konsoli Grep: marian.schedenig.name/wp-content/static/grepconsole_userguide
Danny Bullis

1
Ponadto, jeśli ktoś potrzebuje pomocy przy wzorcach wyrażeń
Danny Bullis

1
Rozważ usunięcie pierwszej [aktualizacji] - teraz można ją łatwo zainstalować przez Marketplace.
Linia

18

W rzeczywistości wtyczka ANSI Console dodaje obsługę kodu ucieczki ANSI do konsoli Eclipse. Obecnie ma jednak ograniczenie, w wyniku którego kody ucieczki, które obejmują wiele linii, nieprawidłowo przeciekają do innych linii podczas przewijania, patrz problem nr 3 .

W przeciwnym razie niektóre wtyczki widoku terminala, jak wyjaśniono w tym drugim pytaniu, mogą być opcją dla niektórych.


Użyłem strony internetowej mihai-nita.net/2013/06/03/eclipse-plugin-ansi-in-console . Perfeclty prosta obsługa ansi w konsoli!
tutejszy

9

Jak już wskazał @Benjamin Grep, konsola to świetny sposób na pokolorowanie wyjścia w konsoli.

Nakręciłem krótki film, aby zademonstrować, jak to działa, i usłyszałem od twórcy wtyczki Grep Console. Wspomniał, że została wydana konsola Grep 3.

Obsada ekranu : http://www.youtube.com/watch?v=fXjgGZAxToc

Zaktualizuj Witryny

Grep Console 2
http://eclipse.musgit.com
(wymaga Eclipse 3.4 (Ganymede) lub nowszego i Java 5.0 lub nowszej)

Grep Console 3
http://eclipse.schedenig.name
(wymaga Eclipse 3.7 (Indigo) lub nowszej i Java 6.0 lub nowszej)



4

Używamy wtyczki Ganymede Eclipse tam, gdzie pracuję i działa dobrze.

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

„Wtyczka log4j do Eclipse, która działa podobnie do piły łańcuchowej (SocketServer). Obejmuje kolory, filtrowanie, szczegółowe informacje i zapisuje ustawienia”.


Szkoda, że ​​to świetna wtyczka, której nie mają dla
europy

15
Posiadanie wtyczki Eclipse o nazwie „ganymede” jest bardzo mylące.
JesperE

2

Przeczytaj o punkcie rozszerzenia org.eclipse.ui.console.consolePatternMatchListeners .


1
to właściwy sposób, ale myślę, że plakat miał nadzieję, że ktoś zrobił to dla sekwencji ucieczki ansi lub kodów kolorów HTML.
aepurniet

1

Możesz rozważyć wypróbowanie Apache Chainsaw ( http://logging.apache.org/chainsaw/index.html ), jeśli już pracujesz z log4j. Umożliwia definiowanie kolorów i filtrowania oraz działa z (prawie) zerową konfiguracją.


Próbowałem tego dawno temu, było to bardzo pomocne, choć nie wiem, czy może mi w tym pomóc. Spodziewam się, że umożliwi mi to większą szczegółowość w kolorowaniu rzędów, ale chcę więcej… Spróbuję tego jutro.
Newtopian

1

Używałem tej wtyczki wcześniej, pozwala ona na kolorowanie wierszy dziennika w oparciu o niestandardowe wyrażenie regularne.

Na przykład, kiedy go używałem, wszelkie linie z błędem słów byłyby czerwone, ostrzeżenie byłoby pomarańczowe, informacja byłaby niebieska ... itd.

Ponieważ jest to regex, możesz zrobić wszystko. Ustaw go tak, aby linia była zielona, ​​ilekroć zaczyna się od „>>>”, a następnie dodaj ciąg wiadomości przed „>>>”.

http://sourceforge.net/projects/logfiletools


1

Możesz użyć wtyczki ANSI Escape w konsoli dla Eclipse. Będziesz tego potrzebował, aby konsola Eclipse mogła interpretować kody ANSI Escape. Zainstaluj go i uruchom ponownie Eclipse . Następnie możesz użyć kodów kolorów ANSI, aby pisać w określonym kolorze. Oto lista kodów kolorów ANSI z innej odpowiedzi związanej z przepełnieniem stosu. Następnie możesz to zrobić:

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);
}

Użyłem tego do stworzenia Custom Formatter dla Console Handler, więc pokazuje logi z Loggera na różnych poziomach z różnymi kolorami (logi INFO na cyjan, logi WARNING na żółto i logi SEVERE na czerwono). Oto jak to zrobiłem , jeśli jesteś zainteresowany.


0

Emoji

Możesz używać kolorów w tekście, tak jak inni wspomnieli w swoich odpowiedziach.

Ale zamiast tego możesz użyć emoji ! na przykład możesz użyć Możesz użyć ⚠️do komunikatów ostrzegawczych i 🛑komunikatów o błędach, aby je wyróżnić!

Lub po prostu użyj tych zeszytów jako koloru:

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

Osobiście używam znaczących emotikonów dla różnych wyników.

Authentication Key: 🔑 
Server Error: 💣
etc.

🎁 Bonus:

Ta metoda pomaga również w szybkim skanowaniu i znajdowaniu dzienników bezpośrednio w kodzie źródłowym .

Ale domyślna czcionka emoji w Linuksie nie jest domyślnie kolorowa i możesz najpierw chcieć uczynić ją kolorową.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.