eclipses中使用ANSIConsole插件,让log4j 显示不同字体颜色

(1)使用ANSIConosle插件使输出在控制台的日志根据级别产生不同的颜色
参考博客:http://www.javatang.com/archives/2015/03/16/17361179.html
点我点我:Eclipse中输出带颜色的log4j日志信息

需要在log4j配置文件中设置自定义的layout,并且可以设置各种日志级别的颜色:
log4j.rootLogger=INFO, Console
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.layout=util.log4j.ColoredPatternLayout
log4j.appender.Console.layout.ErrorColor=red
log4j.appender.Console.layout.DebugColor=blue/green/bright

(2)结果却总是差强人意啊
这里写图片描述
(3)于是就对format方法debug,发现根本进不去if里的条件,每次进去else语句体,于是测试了一下:

System.out.println("event对象:"+event+",event级别为:"+event.getLevel());
System.out.println("event.getLevel()与Level.INFO值相等吗?"+ event.getLevel().equals(Level.INFO));
System.out.println("event.getLevel()与Level.INFO对象引用相等吗?"+ (event.getLevel() == Level.INFO));
System.out.println("log4j配置文件里配置的日志级别为:"+Level.INFO+",所属类别为:"+Level.INFO.getClass());

这里写图片描述
控制台console输出结果为:
这里写图片描述
(4)最后,将format方法贴出

 @Override
        public String format(LoggingEvent event){

        if( event.getLevel() == Level.FATAL){
            return fatalErrorColor+super.format(event)+END_COLOR;
        }else if( event.getLevel().equals(Level.ERROR)){

            return errorColor+super.format(event)+END_COLOR;

        }else if( event.getLevel().equals(Level.WARN)){

            return warnColor+super.format(event)+END_COLOR;

        }else if( event.getLevel().equals(Level.INFO)){

            return infoColor+super.format(event)+END_COLOR;

        }else if( event.getLevel().equals(Level.DEBUG)){

            return debugColor+super.format(event)+END_COLOR;

        }else{
            throw new RuntimeException("Unsupported Level "+event.toString());
        }
        }

这里写图片描述
(5)我的控制台颜色也给出来,可以看看效果
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值