SpringBoot日志
日志框架
SpringBoot选用SLF4J和logback
如何让系统中所有的日志统一到slf4j
- 将系统中其他日志框架排除出去
- 用中间包来替换原来的日志框架
- 导入slf4j的其他实现
SpringBoot日志关系
springboot通过该依赖实现日志功能
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
<version>2.1.4.RELEASE</version>
<scope>compile</scope>
</dependency>
SpringBoot日志依赖关系
如果引入了其他框架,必须把该框架的默认日志依赖移除,SpringBoot能自动适配所有的日志,底层使用slf4j+logback的方式记录日志,引入其他框架的时候,只需要把这个框架依赖的日志框架排除掉即可;
SpringBoot日志使用
springboot默认日志级别为info
指定包的日志级别
logging.level.com.wlj=trace
//记录器
Logger logger = LoggerFactory.getLogger(this.getClass());
@Test
public void contextLoads() {
//日志的级别,由低到高
//可以调整日志级别
logger.trace("这是trace信息");
logger.debug("这是debug信息");
logger.info("这是info信息");
logger.warn("这是warn信息");
logger.error("这是error信息");
}
一些日志配置
日志输出格式:
%d表示日期时间,
%thread表示线程名,
%‐5level:级别从左显示5个字符宽度
%logger{50} 表示logger名字长50个字符,否则按照句点分割。
%msg:日志消息,
%n是换行符
%d{yyyy‐MM‐dd HH:mm:ss.SSS} [%thread] %‐5level %logger{50} ‐ %msg%n
#不指定路径,在当前项目下生成springboot04.log日志文件
#logging.file=springboot04.log
#在指定的路径中创建日志文件,默认为spring.log,如何路径文件夹不存在则会自动
#生成文件夹
logging.path=/springboot/log
#在控制台输出的日志格式
logging.pattern.console=%d{yyyy‐MM‐dd} [%thread] %level - %logger{50} ‐ %msg%n
#在指定文件中日志的输出格式
logging.pattern.file=%d{yyyy‐MM‐dd} [%thread] %level - %logger{50} ‐ %msg%n
指定配置
给类路径下放上每个日志框架自己的配置文件即可;SpringBoot就不使用他默认配置的了
logback.xml:直接就被日志框架识别了;
logback-spring.xml:日志框架就不直接加载日志的配置项,由SpringBoot解析日志配置,可以使用SpringBoot 的高级Profile功能
<springProfile name="staging">
可以指定某段配置只在某个环境下生效
</springProfile>