有没有办法在eclipse控制台中着色部分日志。我知道我可以发送错误和标准流并对它们进行不同的着色,但我更喜欢ANSI转义代码(或任何其他,HTML?)的行,我可以在字符串中嵌入颜色以使其在日志。
这肯定有助于使重要的部分脱颖而出而不依赖于奇怪的布局,而是将布局保持为log4j设置
这是我正在寻找的一个例子:
[INFO]网格已完成....... false
其中粗体部分为蓝色,此颜色可由应用程序控制到一定程度。像这样(标签是概念性的和任意的,但你明白了):
log.info(String.format(“网格已完成....... <blue>
%s </blue>
”,isComplete));
更一般地说,它是在日志中嵌入元信息以帮助显示这些日志的能力。就像我们标记网页内容以帮助通过CSS呈现信息一样。
答案 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;”前缀您的消息字符串。
答案 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字体默认情况下不是彩色的,您可能首先要使其彩色。