logback控制台彩色日志输出
一、logback控制台常规日志输出
1、常规配置
<configuration><appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"><!-- 输出模板 --><encoder><pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-4relative [%thread] %-5level %logger{35} - %msg %n</pattern></encoder></appender><root level="DEBUG"><appender-ref ref="STDOUT" /></root></configuration>
2、控制台常规日志输出
控制台常规日志输出,朴朴素素平淡无奇,各level级别的日志不能直观的区分开:
二、logback控制台彩色日志输出
1、彩色配置
在spring boot下可以通过引用org/springframework/boot/logging/logback/defaults.xml文件中,配置的默认控制台日志输出模板CONSOLE_LOG_PATTERN。
里面默认采用的就是彩色日志输出。
<configuration><!-- 引入spirng boot默认的logback配置文件 --><include resource="org/springframework/boot/logging/logback/defaults.xml"/><appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"><!-- 采用Spring boot中默认的控制台彩色日志输出模板 --><encoder><pattern>${CONSOLE_LOG_PATTERN}</pattern></encoder></appender><root level="DEBUG"><appender-ref ref="STDOUT" /></root></configuration>
2、控制台彩色日志输出
各级别的日志通过不同的色彩清晰的标注出来,看起来更直观舒服。
当然,也可以自定义控制台彩色输出模板。
<configuration><!-- 也可以自定义控制台输出模板 --><property name="CONSOLE_LOG_PATTERN" value="${%clr(%d{${LOG_DATEFORMAT_PATTERN:-yyyy-MM-dd HH:mm:ss.SSS}}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/><appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"><!-- 引用自定义输出模板 --><encoder><pattern>${CONSOLE_LOG_PATTERN}</pattern></encoder></appender><root level="DEBUG"><appender-ref ref="STDOUT" /></root></configuration>
三、彩色日志输出开关
在spring boot中,我们还可以通过属性配置控制是否启用彩色日志输出。
application.properties中设置:
# 检查终端是否支持ANSI,是的话就采用彩色输出
spring.output.ansi.enabled=detect
说明:
spring boot项目中spring.output.ansi.enabled属性的默认值为detect,能满足大多数场景,不推荐修改为其他值。
注意⚠️:
经测试,在idea中启动spring boot的工程,会默认在启动参数中添加-Dspring.output.ansi.enabled=always,强制启用彩色输出。
导致无论是在application.properties中、还是在VM options中重新指定的spring.output.ansi.enabled参数始终无效。
spring.output.ansi.enabled参数可选值介绍:
public static enum Enabled {DETECT,ALWAYS,NEVER;private Enabled() {}
}
DETECT
检查终端是否支持ANSI,是的话就采用彩色输出ALWAYS
不检查,总是彩色输出NEVER
禁用彩色输出
四、严禁日志文件中采用彩色日志输出
<configuration><!-- 引入spirng boot默认的logback配置文件 --><include resource="org/springframework/boot/logging/logback/defaults.xml"/><appender name="FILE" class="ch.qos.logback.core.FileAppender"><file>testFile.log</file><append>true</append><immediateFlush>true</immediateFlush><encoder><!-- 严禁FileAppender采用彩色日志输出 --><pattern>${CONSOLE_LOG_PATTERN}</pattern></encoder></appender><root level="DEBUG"><appender-ref ref="FILE" /></root>
</configuration>
生成的日志文件中的内容:
用于颜色渲染的内容全部变成了乱码字符,严重影响了日志内容的查看,也增加了日志输出的压力。
五、解读spring boot和logback集成
在org.springframework.boot.logging.logback目录下,集成了logback的默认配置相关文件。
这里重点对4个xml配置文件进行介绍:
base.xml
基础配置模板defaults.xml
默认配置属性file-appender.xml
RollingFileAppender模板console-appender.xml
ConsoleAppender模板
4个文件都是included文件,即被引用文件,单独是不会起作用的。
可以在项目中的logback.xml的配置文件中通过include标签根据需要去引用。
base.xml 内容如下:
<included><include resource="org/springframework/boot/logging/logback/defaults.xml" /><property name="LOG_FILE" value="${LOG_FILE:-${LOG_PATH:-${LOG_TEMP:-${java.io.tmpdir:-/tmp}}}/spring.log}"/><include resource="org/springframework/boot/logging/logback/console-appender.xml" /><include resource="org/springframework/boot/logging/logback/file-appender.xml" /><root level="INFO"><appender-ref ref="CONSOLE" /><appender-ref ref="FILE" /></root>
</included>
file-appender.xml文件内容:
<included><appender name="FILE"class="ch.qos.logback.core.rolling.RollingFileAppender"><encoder><pattern>${FILE_LOG_PATTERN}</pattern></encoder><file>${LOG_FILE}</file><rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"><cleanHistoryOnStart>${LOG_FILE_CLEAN_HISTORY_ON_START:-false}</cleanHistoryOnStart><fileNamePattern>${ROLLING_FILE_NAME_PATTERN:-${LOG_FILE}.%d{yyyy-MM-dd}.%i.gz}</fileNamePattern><maxFileSize>${LOG_FILE_MAX_SIZE:-10MB}</maxFileSize><maxHistory>${LOG_FILE_MAX_HISTORY:-7}</maxHistory><totalSizeCap>${LOG_FILE_TOTAL_SIZE_CAP:-0}</totalSizeCap></rollingPolicy></appender>
</included>
总结
1、介绍了如何使用logback在控制台输出彩色日志。
2、严禁将彩色日志输出到日志文件中。
3、可以根据需要引用spring boot中logback的引用文件defaults.xml,console-appender.xml,简化配置。
logback控制台彩色日志输出相关推荐
- Java库:Jansi - 彩色日志输出体验
Java库:Jansi - 彩色日志输出体验 环境:JDK8.springboot 依赖库:Jansi Jansi简介:Jansi是一个小型 Java 库,它允许您使用ANSI 转义码来格式化您的控制 ...
- logback过滤部分日志输出
场景 使用监控异常日志进行告警时,部分异常日志可能只是不需要告警,但无法通过编码去除时,可以通过不输出这类异常日志达到忽略告警的目的. 比如在系统中经常会出现断开的管道的相关问题,异常如下 org.a ...
- VS2017控制台工程日志输出到log文件的同时输出到屏幕
第一步: 在windows 10下使用tee指令 tee为Linux指令,tee把日志输出到log的同时输出到屏幕. 在http://sourceforge.net/projects/unxutils ...
- slf4j+log4j打印日志,控制台无日志输出
slf4j+log4j 实现日志打印 项目场景: 今天看以前的项目,运行起来报错,项目日志对于项目是很重要的,但是控制台没有打印出来日志,运行起来报错的问题先放一放,先把日志的问题解决了,我项目中有l ...
- logback 日志打印,彩色日志
一.logback控制台常规日志输出 常规配置 <configuration><appender name="STDOUT" class="ch.qos ...
- logback无法生成日志文件之谜
前言 spring一般需要打印日志,不然无法定位问题,也会增加调试难度,而目前和spring搭配的比较火的日志库是logback 使用方法很简单,直接在该位置加入一个xml的配置文件即可(配置文件示例 ...
- 【springboot基础】配置日志输出级别以及输出位置
1.配置application.yml logging:config: classpath:spring-logback.xmllevel:root: error 2.配置spring-logback ...
- spring boot日志配置文件(彩色日志)logback-spring.xml
文章目录 前言 ✨彩色日志 ✨输出到控制台 ✨输出到文件 1.输出所有日志 2.输出错误日志 ✨配置不同环境下的日志级别 ✨完整的logback-spring.xml文件配置 ✨文件下载 前言 spr ...
- springboot2.彩色日志配置(自用配置ok)
springboot 会自动识别识别logback.xml <?xml version="1.0" encoding="UTF-8"?> <c ...
- 实现Log4j和Logback的统一日志封装与动态日志级别调整
一.背景 项目中使用日志的地方非常广泛, 如果要做统一的处理,比如调整格式, 增加信息打印, 要修改很多地方,难以维护,所以需要能够将日志做一个统一的封装, 便于扩展使用:同时想做到动态调整日志级别, ...
最新文章
- 11g中AWR新快照视图
- html属性应用实例,HTML5 contenteditable属性使用示例
- vue input file onchange_vue常用指令汇总
- [学习笔记] 单位根反演
- Servlet - 会话跟踪
- C++ :类占用空间计算方式
- 在win10中使用任务计划程序_设置定时任务---Windows使用技巧工作笔记001
- 如何让百度云里的资源不被和谐掉?
- 应用随机过程概率模型导论(9th 英文版) Sheldon M.Ross 共享
- RT-THREAD + HC32F460 + AIR724 + ALIIOT
- 从代码角度看CAN网络层协议 ISO 15765-2(一)
- On Robust Capon Beamforming and Diagonal Loading
- 流年依旧,只是散了曾经
- 深度学习框架tensorflow学习与应用——代码笔记11(未完成)
- 【渝粤题库】广东开放大学 企业文化学 形成性考核
- 关于单片机的C语言编程基础知识(初学注意)
- Mybatis 源码分析(一)
- linux怎样通过手机上网,Linux系统通过手机GPRS上网的设置教程
- thingsboard 编译成功了,总结一下
- 如何推广微信公众号 微信公众号推广技巧
热门文章
- 详解什么是运营商大数据?
- Mujoco Simulate例子笔记
- mysql嵌套select limit_MySQL嵌套查询“LIMIT IN/ALL/ANY/SOME”错误解决方法
- 持续集成、持续交付、微服务----微服务
- WebRTC基本概念
- html中字体 楷体_HTML+CSS入门 CSS设置中文字体(font-family:黑体)后样式失效问题如何解决...
- vb2008 获取u盘id_【干货】纯 windows 系统绕苹果ID解锁,傻瓜式的教程
- DELMIA软件:机器人与行走轴联动实现长焊缝弧焊焊接虚拟仿真
- ATMEGA128定时器1的使用
- 工业机器人的臂部配置形式_工业机器人臂部设计注意事项