日志依赖关系图
总结:
1)、SpringBoot的底层也是使用slf4j+logback的方式进行记录
2)、SpringBoot也把其他的日志替换成slf4j
SpringBoot能自动适配所有的日志,而且底层使用slf4j+logback的方式记录日志,引入其他框架的时候,只需要把这个框架依赖的日志框架排除掉即可。
日志使用
SpringBoot默认帮我们配置好了日志
Logger logger = LoggerFactory.getLogger(getClass());
@Test
public void contextLoads() {
//日志级别由低到高: trace<debug<info<warn<error
logger.trace("这是trace日志");
logger.debug("这是debug日志");
//SpringBoot默认输出info级别级以上的日志
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
日志框架与对应的配置文件
日志框架 | 配置文件 |
Logback | logback-spring.xml 、logback.xml or logback-spring.groovy 、logback.groovy |
Log4j2 | log4j2-spring.xml 、 log4j2.xml |
JDK(Java Util Logging) | logging.properties |
logback.xml 直接被日志框架识别
logback-spring.xml 日志框架不直接加载日志的配置项,由SpringBoot加载,可以使用springProfile标签
<springProfile name="staging">
可以指定某段配置只在某个环境下生效
</springProfile>