在 Eclipse 控制台中为日志着色

Posted

技术标签:

【中文标题】在 Eclipse 控制台中为日志着色【英文标题】:Colorize logs in eclipse console 【发布时间】:2010-09-19 00:38:57 【问题描述】:

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

这肯定有助于在不采用怪异布局的情况下突出重要部分,而是将布局保持在 log4j 设置中

这是我正在寻找的示例:

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

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

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


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

【问题讨论】:

您可以使用来自jcabi-log 的MulticolorLayout,如下所述:***.com/questions/7848325 有趣! ANSI 着色,下次我启动 Eclipse 时应该看看它!谢谢。至于 JCabi,我确实喜欢将我的记录器上下文化,并且很少与类名匹配,所以我怀疑静态包装器是否能解决问题。我经常需要动态地将记录器的名称设置为实例,因为它可以让我更有效地使用记录信息。 【参考方案1】:

表情符号

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

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

或者只是将这些笔记本用作颜色:

?: 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 字体默认不是彩色的,你可能想先让它们彩色。

【讨论】:

【参考方案2】:

您可以在 Eclipse 中使用 ANSI Escape in Console plugin。您将需要它,以便 Eclipse 控制台可以解释 ANSI Escape 代码。 安装它并重新启动 Eclipse。 然后您可以使用 ANSI 颜色代码以某种颜色书写。这是来自另一个 *** 答案的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,如果你有兴趣。

【讨论】:

【参考方案3】:

试试这个 Eclipse 插件:Grep Console

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

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

只输入文字字符串是行不通的。要使线条着色,您必须将字符串括在 .* 在任何一边,像这样: .*ERROR.*

【讨论】:

该插件无法与最新的 Eclipse (Helios) 配合使用。 关于插件未积极开发的更正,我问了创建者几个问题,并在几个小时内得到了答复!至于模式,插件采用正则表达式,因此在配置时需要进行一些调整和修改。我建议安装一个正则表达式插件来尝试从控制台复制粘贴的提取。一旦配置好,它就像一个魅力 如果有人正在寻找 Grep 控制台的文档:marian.schedenig.name/wp-content/static/grepconsole_userguide 另外,如果有人需要有关正则表达式模式的帮助(此帮助链接也包含在 Eclipse 中的 Grep 控制台对话框中):docs.oracle.com/javase/6/docs/api/java/util/regex/Pattern.html 请考虑先删除 [update] - 现在可以通过 Marketplace 轻松安装。【参考方案4】:

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

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

【讨论】:

我使用了网页mihai-nita.net/2013/06/03/eclipse-plugin-ansi-in-console。控制台中完美的简单 ansi 支持!【参考方案5】:

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

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

屏幕演员:http://www.youtube.com/watch?v=fXjgGZAxToc

更新网站

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

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

【讨论】:

【参考方案6】:

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

祝你好运!

编辑:eclipse 插件

【讨论】:

【参考方案7】:

了解 org.eclipse.ui.console.consolePatternMatchListeners 扩展点。

【讨论】:

这是正确的做法,但我认为发帖者希望有人为 ansi 转义序列或 html 颜色代码这样做。【参考方案8】:

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

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

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

http://sourceforge.net/projects/logfiletools

【讨论】:

【参考方案9】:

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

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

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

【讨论】:

这是一个很棒的插件,可惜他们没有适用于欧罗巴的插件:( 拥有一个名为“ganymede”的 Eclipse 插件非常令人困惑。【参考方案10】:

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

【讨论】:

我很久以前就试过了,虽然我不知道在这种情况下它是否可以帮助我,但它非常有帮助。我希望它能让我在行的颜色上更加精细,但我想要更多......我明天会试试。

以上是关于在 Eclipse 控制台中为日志着色的主要内容,如果未能解决你的问题,请参考以下文章

使用 C++ 在控制台中为文本着色

是否可以在控制台中为给定的行着色而不向其写入文本?

如何在 UITextView 中为文本着色

在 iOS 7 中为第三方调试的应用程序中的日志语句显示控制台

eclipse控制台不打印log日志,该怎么解决

发现日志文件和打印在eclipse控制台中的编码不一致