在 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 控制台中为日志着色的主要内容,如果未能解决你的问题,请参考以下文章