Warnai log di konsol gerhana

105

Apakah ada cara untuk mewarnai bagian log di konsol gerhana. Saya tahu saya dapat mengirim ke kesalahan dan aliran standar dan mewarnainya secara berbeda tetapi saya lebih mencari sesuatu di baris kode pelarian ANSI (atau yang lainnya, HTML?) Di mana saya dapat menyematkan warna dalam string agar diwarnai di log.

Ini pasti akan membantu membuat bit penting menonjol tanpa menggunakan tata letak yang aneh, lebih baik pertahankan tata letak ke pengaturan log4j

berikut adalah contoh dari apa yang saya cari:

[INFO] Kisi selesai ....... salah

di mana bagian tebal akan berwarna biru, pewarnaan ini dapat dikontrol oleh aplikasi sampai batas tertentu. seperti itu (tag bersifat konseptual dan sewenang-wenang, tetapi Anda mendapatkan idenya):

log.info (String.format ("Grid selesai ....... <blue>% s </blue>", isComplete));


Pada catatan yang lebih umum, ini adalah kemampuan untuk menyematkan informasi meta di log untuk membantu presentasi log ini. Sama seperti kita menandai konten halaman web untuk membantu penyajian informasi dengan CSS.

Newtopian
sumber
Anda dapat menggunakan MulticolorLayout dari jcabi-log , seperti yang dijelaskan di sini: stackoverflow.com/questions/7848325
yegor256
Menarik! ANSI-Coloring, saya harus melihatnya saat berikutnya saya mengaktifkan Eclipse saya! Terima kasih. Adapun JCabi saya suka mengkontekstualisasikan logger saya dan jarang yang cocok dengan nama kelas jadi saya ragu bungkus statis akan melakukan trik. Saya sering kali perlu menetapkan nama logger secara dinamis ke instance karena hal itu memberi saya penggunaan info logging yang jauh lebih efisien.
Newtopian

Jawaban:

76

Cobalah dengan Plugin Eclipse ini: Grep Console

[Pembaruan] :
Seperti yang ditunjukkan oleh pemberi komentar: Saat menginstal Konsol Grep di versi terakhir Eclipse saat ini, Anda perlu menghapus centang 'Kelompokkan item menurut kategori' di dialog Instal untuk melihat item yang tersedia.
Seperti yang ditunjukkan oleh @Line , plugin sekarang dapat dengan mudah diinstal melalui Eclipse Marketplace lagi tanpa mengubah opsi apa pun.

[Pembaruan 2] :
Seperti yang ditunjukkan oleh @azdev , untuk mendapatkan penyorotan yang tepat:

Memasukkan string literal saja tidak berfungsi. Untuk mendapatkan garis yang akan diwarnai, Anda harus mengapit senar di .* kedua sisi, seperti: .*ERROR.*

Benjamin Seiller
sumber
3
Plugin tidak bekerja dengan Eclipse (Helios) terbaru.
sorin
1
koreksi tentang plugin yang tidak dikembangkan secara aktif, saya mengajukan beberapa pertanyaan kepada pembuatnya dan mendapat balasan dalam beberapa jam! Adapun pola plugin mengambil ekspresi reguler sehingga beberapa penyesuaian dan penyimpangan diharapkan saat mengonfigurasinya. Saya akan merekomendasikan menginstal plugin ekspresi reguler untuk mencoba dengan ekstrak salinan yang ditempel dari konsol. Setelah dikonfigurasi meskipun berfungsi seperti pesona
Newtopian
2
Jika ada yang mencari dokumentasi untuk Konsol Grep: marian.schedenig.name/wp-content/static/grepconsole_userguide
Danny Bullis
1
Selain itu, jika ada yang membutuhkan bantuan dengan pola regex (tautan bantuan ini juga disertakan dalam dialog Konsol Grep di eclipse): docs.oracle.com/javase/6/docs/api/java/util/regex/Pattern. html
Danny Bullis
1
Harap pertimbangkan untuk menghapus [pembaruan] pertama - sekarang dapat dengan mudah dipasang melalui Marketplace.
Jalur
18

Sebenarnya plugin Konsol ANSI menambahkan dukungan kode escape ANSI ke konsol Eclipse. Saat ini memang ada batasan, di mana kode escape yang menjangkau beberapa baris bocor secara tidak benar ke baris lain saat menggulir, lihat masalah # 3 .

Jika tidak, beberapa plugin tampilan terminal seperti yang dijelaskan dalam pertanyaan lain ini mungkin merupakan opsi untuk beberapa.

fmjrey.dll
sumber
Saya menggunakan halaman web mihai-nita.net/2013/06/03/eclipse-plugin-ansi-in-console . Dukungan ansi sederhana yang sempurna di konsol!
tutejszy
9

Seperti yang telah ditunjukkan oleh @Benjamin Grep Console adalah cara yang bagus untuk mewarnai keluaran di Konsol.

Saya telah membuat video pendek untuk mendemonstrasikan cara kerjanya dan mendengar kembali dari Pembuat plugin Konsol Grep. Dia menyebutkan bahwa konsol Grep 3 telah dirilis.

Pemeran layar : http://www.youtube.com/watch?v=fXjgGZAxToc

Perbarui Situs

Grep Console 2
http://eclipse.musgit.com
(memerlukan Eclipse 3.4 (Ganymede) atau lebih tinggi dan Java 5.0 atau lebih tinggi)

Grep Console 3
http://eclipse.schedenig.name
(membutuhkan Eclipse 3.7 (Indigo) atau lebih tinggi dan Java 6.0 atau lebih tinggi)

Ashutosh Jindal
sumber
6

Bagaimana dengan menggunakan Logback dan konverter propertinya dan mencatat semuanya di log4j, yang memungkinkan Anda melihat tingkat perbedaan pada warna yang berbeda.

Semoga berhasil!

EDIT : plugin eclipse

David Santamaria
sumber
4

Kami menggunakan plugin Ganymede Eclipse tempat saya bekerja, dan itu berfungsi dengan baik.

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

"Plugin log4j ke Eclipse yang bekerja mirip dengan gergaji mesin (SocketServer). Termasuk warna, pemfilteran, informasi rinci, dan menyimpan pengaturan."

Neal Swearer
sumber
Ini adalah plugin yang bagus
sayang
15
Sangat membingungkan untuk memiliki plugin Eclipse yang disebut "ganymede".
JesperE
2

Baca tentang titik ekstensi org.eclipse.ui.console.consolePatternMatchListeners .

thSoft
sumber
1
Itulah cara yang benar untuk melakukannya, tetapi saya pikir poster itu berharap seseorang telah melakukan ini untuk urutan pelarian ansi atau kode warna html.
aepurniet
1

Anda dapat mempertimbangkan untuk mencoba Apache Chainsaw ( http://logging.apache.org/chainsaw/index.html ) jika Anda sudah bekerja dengan log4j. Memungkinkan Anda menentukan warna dan filtern dan bekerja dengan (hampir) konfigurasi nol.

GHad
sumber
Saya telah mencobanya sejak lama, itu sangat membantu meskipun saya tidak tahu apakah itu dapat membantu saya dalam kasus ini. Saya berharap ini memungkinkan saya lebih banyak perincian tentang bagaimana baris diwarnai, tetapi saya ingin lebih ... Saya akan mencobanya besok.
Newtopian
1

Saya telah menggunakan plugin ini sebelumnya, ini memungkinkan Anda mewarnai baris log berdasarkan regex yang disesuaikan.

Misalnya, ketika saya menggunakannya, setiap baris dengan kata-kata kesalahan akan menjadi merah, peringatan akan menjadi oranye, info akan menjadi biru ... dll.

Karena ini regex, Anda bisa melakukan apa saja. Atur untuk membuat garis menjadi hijau setiap kali dimulai dengan ">>>" dan kemudian tambahkan string pesan Anda dengan ">>>".

http://sourceforge.net/projects/logfiletools


sumber
1

Anda dapat menggunakan plugin ANSI Escape in Console untuk Eclipse. Anda akan memerlukan ini agar konsol Eclipse dapat menafsirkan kode Escape ANSI. Instal dan mulai ulang Eclipse . Kemudian Anda dapat menggunakan Kode Warna ANSI untuk menulis dengan warna tertentu. Berikut adalah daftar Kode Warna ANSI dari jawaban stackoverflow lain. Kemudian Anda bisa melakukan ini:

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

Saya menggunakan ini untuk membuat Custom Formatter untuk Console Handler sehingga menampilkan log dari Logger di level berbeda dengan warna berbeda (INFO log in cyan, WARNING log in yellow and SEVERE logs in red). Begini cara saya melakukannya , jika Anda tertarik.

jajube.dll
sumber
0

Emoji

Anda dapat menggunakan warna untuk teks seperti yang disebutkan orang lain dalam jawaban mereka.

Tapi Anda bisa menggunakan emoji ! misalnya Anda dapat menggunakan Anda dapat menggunakan ⚠️untuk pesan peringatan dan🛑 pesan kesalahan untuk membuatnya menonjol!

Atau gunakan saja buku catatan ini sebagai warna:

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

Saya pribadi menggunakan emoji yang berarti untuk keluaran yang berbeda.

Authentication Key: 🔑 
Server Error: 💣
etc.

🎁 Bonus:

Metode ini juga membantu Anda memindai dan menemukan log dengan cepat langsung di kode sumber .

Tetapi font emoji default linux tidak berwarna secara default dan Anda mungkin ingin membuatnya berwarna-warni, pertama.

Mojtaba Hosseini
sumber