springBoot日志配置
概述
在计算机的世界里,日志的重要性不言而喻。系统日志,应用日志等都可以帮我们更快的定位的计算机问题出现在哪里。而springBoot默认使用LogBack日志,当然如果不更改,我们也无需添加额外的日志配置。
打印日志
新建logCofig.java类,测试打印日志输出
package com.xmlxy.bean; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configuration public class LogConfig { private static final Logger log = LoggerFactory.getLogger(LogConfig.class); @Bean public TestData logMethod() { log.info("==================日志输出=================="); return new TestData(); } }
启动程序,可以看到,日志已经打印在控制台
其实一直有个疑问private static final Logger log = LoggerFactory.getLogger(LogConfig.class)后面的LogConfig.class换成别的名字也没报错,到底为什么要写成对应类的名称哪,其实说白就是为了快速的定位问题而已,可以发现打印出来的类是 com.xmlxy.bean.LogConfig这个类,如果写成其他类,就会输出对应类的名称
日志存储文件
在application.properties的全局配置文件中添加
logging.path=D://log/ logging.file=first-springboot-project.log
如果logging.file不配置,默认是spring.log,配置完成,运行项目,可以看到在指定的路径下生成一个first-springboot-project.log
查看里头内容,跟控制台输出的信息是一样的
日志级别
日志级别分为 TARCE < DEBUG < INFO < WARN < ERROR < FATAL,springBoot默认级别是INFO,如果改为WARN,会怎样哪?在application.properties添加
logging.level.root = warn
运行项目,可以看到日志没任何内容
定制日志格式
logging.pattern.console
%d{HH:mm:ss.SSS}——日志输出时间 %thread——输出日志的进程名字,这在Web应用以及异步任务处理中很有用 %-5level——日志级别,并且使用5个字符靠左对齐 %logger- ——日志输出者的名字 %msg——日志消息 %n——平台的换行符
在application.properties添加
logging.pattern.console=%d{yyyy/MM/dd-HH:mm:ss} [%thread] %-5level %logger- %msg%n
logging.pattern.file=%d{yyyy/MM/dd-HH:mm} [%thread] %-5level %logger- %msg%n
然后查看日志
多彩输出
设置成彩色的日志输出能让你的日志更具可读,但是你的终端必须支持ANSI,设置application.properties
spring.output.ansi.enabled = DETECT