在eclipse控制台中着色日志

时间:2008-10-24 14:34:21

标签: java eclipse console escaping metadata

有没有办法在eclipse控制台中着色部分日志。我知道我可以发送错误和标准流并对它们进行不同的着色,但我更喜欢ANSI转义代码(或任何其他,HTML?)的行,我可以在字符串中嵌入颜色以使其在日志。

这肯定有助于使重要的部分脱颖而出而不依赖于奇怪的布局,而是将布局保持为log4j设置

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

[INFO]网格已完成....... false

其中粗体部分为蓝色,此颜色可由应用程序控制到一定程度。像这样(标签是概念性的和任意的,但你明白了):

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


更一般地说,它是在日志中嵌入元信息以帮助显示这些日志的能力。就像我们标记网页内容以帮助通过CSS呈现信息一样。

10 个答案:

答案 0 :(得分:73)

试试这个Eclipse插件:Grep Console

<强> [更新]
正如评论者所指出: 在当前最新版本的Eclipse中安装Grep Console时,您需要取消选中“安装”对话框中的“按类别分组项目”以查看可用项目。
正如@Line指出的那样,现在可以通过Eclipse Marketplace轻松安装插件,而无需更改任何选项。

[更新2]
正如@azdev所指出的,要获得适当的突出显示:

  

仅输入文字字符串不起作用。要使线条着色,您必须将字符串括起来   .*   在任何一方,如下:   .*ERROR.*

答案 1 :(得分:15)

实际上ANSI Console plugin为Eclipse控制台添加了ANSI转义码支持。 目前它确实有一个限制,因为在滚动时,跨越多行的转义码会错误地泄漏到其他行,请参阅issue #3

否则this other question中解释的某些终端视图插件可能是某些人的选项。

答案 2 :(得分:9)

正如@Benjamin已经指出的,Grep Console是一种在控制台中着色输出的好方法。

我制作了一个简短的视频来演示它是如何工作的,并从Grep控制台插件的创建者那里听到。他提到 Grep控制台3已经发布。

广告投放http://www.youtube.com/watch?v=fXjgGZAxToc

更新网站

Grep Console 2
http://eclipse.musgit.com
(需要Eclipse 3.4(Ganymede)或更高版本以及Java 5.0或更高版本)

Grep Console 3
http://eclipse.schedenig.name
(需要Eclipse 3.7(Indigo)或更高版本以及Java 6.0或更高版本)

答案 3 :(得分:6)

如何使用Logback及其property converter并记录log4j中的所有内容,这可能会让您看到不同颜色的不同级别。

祝你好运!

编辑eclipse插件

答案 4 :(得分:4)

我们在工作的地方使用Ganymede Eclipse插件,效果很好。

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

“Eclipse的log4j插件,类似于电锯(SocketServer)。包括颜色,过滤,详细信息和保存设置。”

答案 5 :(得分:2)

阅读 org.eclipse.ui.console.consolePatternMatchListeners 扩展点。

答案 6 :(得分:1)

如果您已经在使用log4j,可以考虑尝试Apache Chainsaw(http://logging.apache.org/chainsaw/index.html)。允许您定义颜色和filtern,并使用(几乎)零配置。

答案 7 :(得分:1)

之前我使用过这个插件,它可以让你根据自定义的正则表达式对日志行进行着色。

例如,当我使用它时,任何带错误字样的行都是红色,警告是橙色,信息是蓝色等等。

因为它是正则表达式,所以你可以做任何事情。将其设置为只要以“&gt;&gt;&gt;”开头就生成绿线然后使用“&gt;&gt;&gt;”前缀您的消息字符串。

http://sourceforge.net/projects/logfiletools

答案 8 :(得分:1)

您可以将ANSI Escape in Console plugin用于Eclipse。您将需要使用它,以便Eclipse控制台可以解释ANSI Escape代码。 安装它并重新启动Eclipse 。 然后,您可以使用ANSI颜色代码以某种颜色书写。这是另一个stackoverflow答案中的list of ANSI Color Codes。然后,您可以执行以下操作:

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

我用它为控制台处理程序创建了一个自定义格式化程序,以便它以不同的颜色(不同的级别显示来自Logger的日志)(青色的INFO日志,黄色的WARNING日志和红色的SEVERE日志)。 Here's how I did it,如果您有兴趣。

答案 9 :(得分:0)

表情符号

您可以像其他答案中提到的那样为文本使用颜色。

但是您可以改用表情符号!例如,可以使用⚠️发出警告消息,使用?发出错误消息,使它们脱颖而出!

或仅将这些笔记本用作颜色:

?: error message
?: warning message
?: ok status message
?: action message
?: canceled status message
?: Or anything you like and want to recognize immediately by color

我个人将有意义的表情符号用于不同的输出。

Authentication Key: ? 
Server Error: ?
etc.

?奖励:

此方法还可以帮助您快速直接在源代码中直接扫描并查找日志

但是linux默认的emoji字体默认情况下不是彩色的,您可能首先要使其彩色。