springboot引入logback(springboot~logback按level添加不同的颜色)
导读:对于logback的模板来说,我们是可以自定义的,同时它也提供了一些公开的常量,比如%level,%thread这些,我们如果希望自定义这些常量,需要实现ClassicConverter抽象类,重写它的convert方法。...
对于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"; @Override public 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 ""; } } } 配置和模板 <conversionRule conversionWord="color" converterClass="com.lind.common.LevelColorClassicConverter" /> <appender name="consoleLog" class="ch.qos.logback.core.ConsoleAppender"> <layout class="ch.qos.logback.classic.PatternLayout"> <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} ${springAppName} %ip [%thread] %color %msg%n</pattern> </layout> </appender>运行截图
通过这个例子 ,我们也可以自定义输出服务器的IP地址等,像链路追踪traceId也是通过这种方式进行追加的 。创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!