107

有没有办法在 Eclipse 控制台中为部分日志着色。我知道我可以发送到错误和标准流并为它们着色,但我更多的是在 ANSI 转义码(或任何其他,HTML?)的行中寻找一些东西,我可以在字符串中嵌入颜色以使其着色日志。

它肯定有助于在不采用奇怪布局的情况下使重要的部分脱颖而出,而是将布局保持在 log4j 设置中

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

[INFO] 网格完整....... false

在粗体部分为蓝色的情况下,这种颜色可以在一定程度上由应用程序控制。像这样(标签是概念性的和任意的,但你明白了):

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


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

4

10 回答 10

81

试试这个 Eclipse 插件:Grep 控制台

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

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

只输入文字字符串是行不通的。.* 要使线条着色,您必须在两侧 将字符串括起来 ,如下所示:.*ERROR.*

于 2009-09-03T13:03:25.743 回答
19

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

否则,其他问题中解释的某些终端视图插件可能是某些人的选择。

于 2014-04-07T13:54:38.230 回答
9

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

我制作了一个简短的视频来演示它是如何工作的,并从 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 或更高版本)

于 2012-09-07T06:49:26.873 回答
6

如何使用Logback及其属性转换器并将所有内容记录在 log4j 中,这可能会让您看到不同颜色的不同级别。

祝你好运!

编辑日食插件

于 2008-10-24T15:18:51.247 回答
4

我们在我工作的地方使用 Ganymede Eclipse 插件,它运行良好。

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

“Eclipse 的 log4j 插件,其工作方式类似于链锯 (SocketServer)。包括颜色、过滤、详细信息和保存设置。”

于 2008-10-24T15:20:48.200 回答
4

您可以在Eclipse的控制台插件中使用 ANSI Escape 。您将需要它,以便 Eclipse 控制台可以解释 ANSI Escape 代码。安装它并重新启动 Eclipse。然后您可以使用 ANSI 颜色代码以某种颜色书写。这是来自另一个 stackoverflow 答案的 ANSI 颜色代码列表。然后你可以这样做:

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 日志)。这是我的做法,如果你有兴趣。

于 2020-02-27T13:30:05.967 回答
2

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

于 2009-07-09T01:09:20.853 回答
1

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

于 2008-10-24T14:49:02.740 回答
1

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

例如,当我使用它时,任何带有 error 字样的行都会是红色的,warning 会是橙色的,info 会是蓝色的......等等。

因为它是正则表达式,所以你可以做任何事情。设置它以使该行以“>>>”开头时变为绿色,然后在您的消息字符串前面加上“>>>”。

http://sourceforge.net/projects/logfiletools

于 2008-10-24T15:38:03.623 回答
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 字体默认情况下不是彩色的,您可能希望首先使它们彩色。

于 2020-08-15T18:34:49.993 回答