在 Eclipse 控制台中为日志着色

在 Eclipse 控制台中是否有办法使部分日志着色。我知道我可以发送错误,文本数据流和颜色他们不同,但我更期待在 ANSI 转义代码的行(或其他,HTML?)在那里我可以把颜色嵌入到字符串中,让它在原木中着色。

它肯定有助于使重要的位脱颖而出,而不是诉诸于怪异的布局,而是保持布局的 log4j 设置

这里有一个我正在寻找的例子:

电网已经完成... ... 假的

当粗体部分为蓝色时,这种着色可以在一定程度上由应用程序控制。像这样(标签是概念性的和任意的,但是你可以理解) :

Info (String.format (“网格已完成... ... . <blue>% s</blue>”,isComplete)) ;


更一般地说,它能够在日志中嵌入元信息,以帮助表示这些日志。就像我们标记网页内容来帮助 CSS 显示信息一样。

76166 次浏览

You may consider trying Apache Chainsaw (http://logging.apache.org/chainsaw/index.html) if you are already working with log4j. Lets you define colors and filtern and works with (nearly) zero configuration.

What about use Logback and its property converter and log everything in log4j, that may allow you see the differents levels on differents colors.

Good luck!

EDIT: the eclipse plugin

We use the Ganymede Eclipse plugin where I work, and it works well.

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

"A log4j plugin to Eclipse that works similar to chainsaw (SocketServer). Includes color, filtering, detailed information, and saves settings."

I've used this plugin before, it lets you colourize lines of the log based on customized regex.

For example, when I was using it, any lines with the words error would be red, warning would be orange, info would be blue... etc.

Since it's regex, you could do anything. Set it up to make the line green whenever it starts with ">>>" and then prepend your message string with ">>>".

http://sourceforge.net/projects/logfiletools

Read about the org.eclipse.ui.console.consolePatternMatchListeners extension point.

Have a try with this Eclipse Plugin: Grep Console

[Update]:
As pointed out by commenters: When installing Grep Console in the currently last version of Eclipse, you need to uncheck 'Group items by category' in the Install dialog to see the available items.
As pointed out by @Line the plugin can now be easily installed via the Eclipse Marketplace again without changing any options.

[Update 2]:
As pointed out by @azdev, to get proper highlighting:

Entering just literal strings doesn't work. To get a line to be colored, you have to enclose the string in .* on either side, like so: .*ERROR.*

As already pointed out by @Benjamin Grep Console is a great way to colorize output in the Console.

I had made a short video to demonstrate how it worked and heard back from the Creator of the Grep Console plugin. He mentioned that Grep console 3 is has been released.

Screen cast : http://www.youtube.com/watch?v=fXjgGZAxToc

Update Sites

Grep Console 2
http://eclipse.musgit.com
(requires Eclipse 3.4 (Ganymede) or higher and Java 5.0 or higher)

Grep Console 3
http://eclipse.schedenig.name
(requires Eclipse 3.7 (Indigo) or higher and Java 6.0 or higher)

Actually the ANSI Console plugin adds ANSI escape code support to Eclipse console. At present it does have a limitation though, whereby escape codes that span multiple lines leak incorrectly to other lines when scrolling, see issue #3.

Otherwise some terminal view plugin as explained in this other question might be an option for some.

You can use ANSI Escape in Console plugin for Eclipse. You'll need this so the Eclipse console can interpret ANSI Escape codes. Install it and restart Eclipse. Then you can use ANSI Color Codes to write in a certain color. Here's a list of ANSI Color Codes from another stackoverflow answer. Then you can do this:

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

I used this to create a Custom Formatter for the Console Handler so it shows logs from Logger in different levels with different colors (INFO logs in cyan, WARNING logs in yellow and SEVERE logs in red). Here's how I did it, if you're interested.

Emoji

You can use colors for text as others mentioned in their answers.

But you can use emojis instead! for example you can use You can use ⚠️ for warning messages and 🛑 for error messages to make them standing out!

Or simply use these note books as a color:

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

I personally use meaningful emojis for different outputs.

Authentication Key: 🔑
Server Error: 💣
etc.

🎁 Bonus:

This method also helps you to quickly scan and find logs directly in the source code.

But linux default emoji font is not colorful by default and you may want to make them colorful, first.