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.