简述
偶然发现,在Spring Boot中,可以自定义输出日志的颜色(之前其实是有的,但只有日志级别那个地方有颜色).
主要改动的就是,日志消息的颜色跟日志级别的颜色统一了.
但还是有几点要说明:
- 仅支持Logback日志系统
- 控制台输出格式的默认配置在: org.springframework.boot.logging.logback.DefaultLogbackConfiguration.java的CONSOLE_LOG_PATTERN属性;
- 在application.properties中配置logging.pattern.console即可覆盖默认配置
- 更多配置可以参考: Spring Boot官方文档
源码
完整源码: Gitee仓库
源码很简单,启动类如下:
import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.util.Map; @SpringBootApplication @RestController public class SpringBootLoggingColorCustomDemoApplication { private final Logger log = LoggerFactory.getLogger(this.getClass()); @RequestMapping("/") public Map<String,String> hello(){ log.trace("test trace"); log.debug("test debug"); log.warn("test warn"); log.info("test info"); log.error("test error"); return Map.of("Hello","Java"); } public static void main(String[] args) { SpringApplication.run(SpringBootLoggingColorCustomDemoApplication.class, args); } }
application.properties配置如下:
spring.output.ansi.enabled=ALWAYS # 启用ANSI输出
logging.level.root=TRACE # 配置日志级别,输出会比较多.默认级别是INFO
# 配置输出格式.
logging.pattern.console=%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(:){red} %clr(%m){%5p} %n
完整源码: Gitee仓库