最新要闻

广告

手机

iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?

iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?

警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案

警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案

家电

全球头条:springboot~logback按level添加不同的颜色

来源:博客园


(资料图片仅供参考)

对于logback的模板来说,我们是可以自定义的,同时它也提供了一些公开的常量,比如%level,%thread这些,我们如果希望自定义这些常量,需要实现ClassicConverter抽象类,重写它的convert方法。

系统变量

  • %thread 当前线程
  • %d{yyyy-MM-dd HH:mm:ss.SSS} 当前日期时间
  • %level 日志级别
  • %msg 日志主体
  • %n 换行

自定义变量ClassicConverter

ClassicConverter对象负责从ILoggingEvent 提取信息,并产生一个字符串。例如,LoggerConverter,它是处理“% logger”转换符的转换器,它从ILoggingEvent提取logger 的名字并作为字符串返回。

  • 例如,一个按日志级别实现的颜色转化器
/** * 日志模板:基于日志级别的颜色的转换器 */public class LevelColorClassicConverter extends ClassicConverter {private static final String END_COLOR = "\u001b[m";private static final String ERROR_COLOR = "\u001b[0;31m";private static final String WARN_COLOR = "\u001b[0;33m";@Overridepublic String convert(ILoggingEvent event) {StringBuffer sbuf = new StringBuffer();sbuf.append(getColor(event.getLevel()));String result = String.format("%5s", event.getLevel());sbuf.append(result);sbuf.append(END_COLOR);return sbuf.toString();}/** * Returns the appropriate characters to change the color for the specified logging * level. */private String getColor(Level level) {switch (level.toInt()) {case Level.ERROR_INT:return ERROR_COLOR;case Level.WARN_INT:return WARN_COLOR;default:return "";}}}
  • 配置和模板
            %d{yyyy-MM-dd HH:mm:ss.SSS} ${springAppName} %ip [%thread] %color %msg%n    
  • 运行截图通过这个例子,我们也可以自定义输出服务器的IP地址等,像链路追踪traceId也是通过这种方式进行追加的。

关键词: 系统变量 方式进行 当前日期时间