让Eclipse/MyEclipse的控制台和log4j日志支持多种颜色

来源:互联网 发布:京津冀大数据联盟 编辑:程序博客网 时间:2024/05/16 06:54

开发SSH项目,log4j在控制台的输出日志只能是一种颜色,借助log4j的配置也只支持两种——默认err红和out黑,看着很不舒服。网上有资料说log4j 2支持颜色定义,没试过,毕竟不清楚ssh用的是什么版本,怕引起潜在问题。


最初感觉这个需求应该很普遍,网上一定会有很多解决方案。但找了很久,资料很少,而且照着做也没成功。于是到国外论坛找了些资料,最终成功了。有类似需求的java coder可以参考。


值得一提的是,此方法可用于任何基于Eclipse的Java程序,甚至其他编程语言


测试环境:MyEclipse 2014、SSH、log4j、JRebel 5.6.1

---------------------------------------------------------------------------------------

0、原理:

核心就是让Eclipse的控制台支持ANSI Escape Color——一种国际标准,使用特定字符表示颜色。即让Eclipse的Console对表示颜色的特定字符进行转义(Escape),而不要直接输出。例如:

public class HelloColor {    public static void main(String [] args) {        System.out.println("Hello \u001b[1;31mred\u001b[0m world!");    }}

1、为Eclipse/MyEclipse在线安装 ANSI Escape in Console 插件:




2、重启IDE,如下所示则表示成功




3、下载支持jar包,并拷贝到SSH工程的WEB-INF/lib下:

目前最新版是1.0.4.1,下载地址是:点击打开链接


注意,该jar依赖了log4j的1.2.17,因此lib下也要有log4j的jar包。


4、修改src下的log4j.properties:

<pre name="code" class="java"><span style="font-size: 16pt;"># ALL<DEBUG<INFO<WARN<ERROR<FATAL<OFFlog4j.rootLogger=INFO, CONSOLElog4j.appender.CONSOLE=</span><span style="font-size:24px;color:#ff0000;"><strong>com.colorlog.log4j.AnsiColorConsoleAppender</strong></span><span style="font-size: 16pt;">log4j.appender.CONSOLE.layout=org.apache.log4j.EnhancedPatternLayoutlog4j.appender.CONSOLE.layout.ConversionPattern=%-5p: %c{2} [%t] - %m%n# You can change the default colors# log4j.appender.CONSOLE.FatalColour={esc}[1;35m# log4j.appender.CONSOLE.ErrorColour={esc}[0;31m# log4j.appender.CONSOLE.WarnColour ={esc}[0;33m# log4j.appender.CONSOLE.InfoColour ={esc}[1;32m# log4j.appender.CONSOLE.DebugColour={esc}[1;36m# log4j.appender.CONSOLE.TraceColour={esc}[1;30m</span>


5、启动工程,测试









0 0
原创粉丝点击