您的位置:首页 > 编程语言 > Java开发

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

2017-08-14 22:32 387 查看
(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)我的控制台颜色也给出来,可以看看效果

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: