Tutulma konsolunda günlükleri renklendirin


105

Tutulma konsolunda günlüklerin parçalarını renklendirmenin bir yolu var mı? Hataya ve standart akışlara gönderebileceğimi ve bunları farklı şekilde renklendirebileceğimi biliyorum, ancak daha çok ANSI kaçış kodlarının (veya herhangi bir başka HTML) satırlarına bakıyorum, burada renkleri dizede renklendirmek için gömebilirim. kütükler.

Garip düzene başvurmadan önemli bitlerin öne çıkmasına yardımcı olacağı kesindir, düzeni log4j kurulumlarında tutmak yerine

işte aradığım şeyin bir örneği:

[BİLGİ] Izgara tamamlandı ....... yanlış

Koyu kısımların mavi olacağı yerlerde bu renklendirme uygulama ile bir ölçüde kontrol edilebilir. böyle (etiketler kavramsal ve keyfidir, ancak fikri anladınız):

log.info (String.format ("Izgara tamamlandı ....... <blue>% s </blue>", isComplete));


Daha genel bir not olarak, bu günlüklerin sunumuna yardımcı olmak için meta bilgileri günlüklere gömme yeteneğidir. Bilginin CSS ile sunumuna yardımcı olmak için web sayfalarının içeriğini etiketlediğimiz gibi.


kullanabileceğiniz MulticolorLayout gelen jcabi-log : Burada açıklandığı gibi, stackoverflow.com/questions/7848325
yegor256

İlgi çekici! ANSI-Colouring, Bir dahaki sefere Eclipse'imi ateşlediğimde buna bir göz atmalıyım! Teşekkürler. JCabi'ye gelince, kaydedicilerimi bağlamsallaştırmayı seviyorum ve bu nadiren sınıf adına uyuyor, bu yüzden statik bir sarmalayıcının işe yarayacağından şüpheliyim. Günlüğe kaydetme bilgisini çok daha verimli bir şekilde kullanmamı sağladığından, çoğu zaman kaydedicinin adını dinamik olarak örneğe ayarlamam gerekir.
Newtopian

Yanıtlar:


76

Bu Eclipse Eklentisini deneyin: Grep Konsolu

[Güncelleme] :
Yorumcuların işaret ettiği gibi: Eclipse'in şu anki son sürümüne Grep Konsolu yüklerken, mevcut öğeleri görmek için Kur iletişim kutusundaki 'Öğeleri kategoriye göre grupla' seçeneğinin işaretini kaldırmanız gerekir. @Line
tarafından belirtildiği gibi eklenti artık herhangi bir seçeneği değiştirmeden tekrar Eclipse Marketplace aracılığıyla kolayca kurulabilir.

[Güncelleme 2] : @azdev'in
belirttiği gibi , düzgün bir şekilde vurgulamak için:

Yalnızca değişmez dizeler girmek işe yaramaz. Bir çizgiyi renklendirmek için, dizeyi .* her iki tarafa da yerleştirmeniz gerekir, örneğin: .*ERROR.*


3
Eklenti, en son Eclipse (Helios) ile çalışmak için dikiş atmaz.
sorin

1
eklentinin aktif olarak geliştirilmemesiyle ilgili düzeltme, oluşturucuya birkaç soru sordum ve saatler içinde yanıt aldım! Kalıplara gelince, eklenti düzenli ifadeler alır, bu nedenle onu yapılandırırken biraz ince ayar ve uğraşma beklenir. Konsoldan yapıştırılan alıntıları kopyalamak için normal ifade eklentisi yüklemenizi tavsiye ederim. Yapılandırıldıktan sonra bir cazibe gibi çalışıyor
Newtopian

2
Herhangi birinin Grep Konsolu için dokümantasyonu araması durumunda: marian.schedenig.name/wp-content/static/grepconsole_userguide
Danny Bullis

1
Ayrıca, herhangi birinin normal ifade kalıplarıyla ilgili yardıma ihtiyacı olması durumunda (bu yardım bağlantısı, tutulmada Grep Konsolu iletişim kutusunda da bulunur): docs.oracle.com/javase/6/docs/api/java/util/regex/Pattern. html
Danny Bullis

1
Lütfen ilk [güncellemeyi] kaldırmayı düşünün - artık Marketplace aracılığıyla kolayca yüklenebilir.
Hat

18

Aslında ANSI Konsolu eklentisi , Eclipse konsoluna ANSI kaçış kodu desteği ekler. Halihazırda bir sınırlaması vardır, bu nedenle birden fazla satırı kapsayan kaçış kodları, kaydırma sırasında diğer satırlara yanlış bir şekilde sızar, bkz. Sorun # 3 .

Aksi takdirde, bu diğer soruda açıklandığı gibi bazı terminal görünümü eklentileri, bazıları için bir seçenek olabilir.


Mihai-nita.net/2013/06/03/eclipse-plugin-ansi-in-console web sayfasını kullandım . Konsolda mükemmel basit ansi desteği!
tutejszy

9

@Benjamin Grep Console tarafından daha önce belirtildiği gibi, Konsolda çıktıyı renklendirmenin harika bir yoludur.

Nasıl çalıştığını göstermek için kısa bir video hazırladım ve Grep Konsolu eklentisinin yaratıcısından haber aldım. Grep konsol 3'ün piyasaya sürüldüğünden bahsetti .

Ekran yayını : http://www.youtube.com/watch?v=fXjgGZAxToc

Siteleri Güncelle

Grep Console 2
http://eclipse.musgit.com
(Eclipse 3.4 (Ganymede) veya üstü ve Java 5.0 veya üstü gerektirir)

Grep Console 3
http://eclipse.schedenig.name
(Eclipse 3.7 (Indigo) veya üstü ve Java 6.0 veya üstü gerektirir)



4

Çalıştığım yerde Ganymede Eclipse eklentisini kullanıyoruz ve iyi çalışıyor.

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

"Elektrikli testereye (SocketServer) benzer şekilde çalışan Eclipse için bir log4j eklentisi. Renk, filtreleme, ayrıntılı bilgi içerir ve ayarları kaydeder."


Bu harika bir eklenti, europa için sahip olmadıkları kadar kötü :(
branchgabriel

15
"Ganymede" adlı bir Eclipse eklentisine sahip olmak oldukça kafa karıştırıcı.
JesperE

2

Org.eclipse.ui.console.consolePatternMatchListeners uzantı noktası hakkında bilgi edinin .


1
bunu yapmanın doğru yolu bu, ama sanırım poster birisinin bunu ansi kaçış dizileri veya html renk kodları için yaptığını umuyordu.
aepurniet

1

Zaten log4j ile çalışıyorsanız Apache Chainsaw'ı ( http://logging.apache.org/chainsaw/index.html ) denemeyi düşünebilirsiniz . Renkleri ve filterni tanımlamanıza izin verir ve (neredeyse) sıfır konfigürasyonla çalışır.


Uzun zaman önce denedim, bu durumda bana yardımcı olup olamayacağını bilmeme rağmen çok yardımcı oldu. Satırların nasıl renklendirildiği konusunda bana daha fazla ayrıntı sağlamasını bekliyorum, ancak daha fazlasını istiyorum ... Yarın deneyeceğim.
Newtopian

1

Bu eklentiyi daha önce kullandım, günlük satırlarını özelleştirilmiş regex'e göre renklendirmenize izin veriyor.

Örneğin, onu kullanırken, hata kelimesi olan satırlar kırmızı, uyarı turuncu, bilgi mavi ... vb.

Normal ifade olduğu için her şeyi yapabilirsin. ">>>" ile başladığında satırı yeşil yapacak şekilde ayarlayın ve ardından mesaj dizenizin başına ">>>" ekleyin.

http://sourceforge.net/projects/logfiletools


1

Eclipse için Konsolda ANSI Escape eklentisini kullanabilirsiniz . Eclipse konsolunun ANSI Escape kodlarını yorumlayabilmesi için buna ihtiyacınız olacak. Kurun ve Eclipse'i yeniden başlatın . Ardından, belirli bir renkte yazmak için ANSI Renk Kodlarını kullanabilirsiniz. İşte başka bir yığın akışı yanıtından ANSI Renk Kodlarının bir listesi . O zaman bunu yapabilirsiniz:

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

Bunu, Konsol İşleyicisi için bir Özel Biçimlendirici oluşturmak için kullandım, böylece Logger'dan günlükleri farklı renklerle farklı seviyelerde gösterir (BİLGİ günlükleri mavi renkte, UYARI günlükleri sarı renkte ve Ciddi günlükler kırmızı renkte). Eğer ilgilenirseniz, işte böyle yaptım .


0

Emoji

Cevaplarında belirtildiği gibi metin için renkleri kullanabilirsiniz.

Ancak bunun yerine emojiyi kullanabilirsiniz ! örneğin kullanabilirsiniz ⚠️Uyarı mesajları ve 🛑hata mesajları için onları öne çıkarmak için kullanabilirsiniz!

Veya bu not defterlerini bir renk olarak kullanın:

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

Kişisel olarak farklı çıktılar için anlamlı emojiler kullanıyorum.

Authentication Key: 🔑 
Server Error: 💣
etc.

🎁 Bonus:

Bu yöntem ayrıca günlükleri doğrudan kaynak kodunda hızlı bir şekilde taramanıza ve bulmanıza yardımcı olur .

Ancak linux varsayılan emoji yazı tipi varsayılan olarak renkli değildir ve önce onları renkli yapmak isteyebilirsiniz.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.