SpringBoot能自动适配所有的日志,而且底层使用slf4j+logback的方式记录日志;spring-boot-starter-logging(会被其他场景启动器依赖,无需主动依赖)场景启动器已经为我们自动配置了日志的转换功能;
当我们引入其他框架的时候,如果pom依赖了非slf4j的日志实现框架,则需要在spring boot中排除jar包,否则会包名冲突;例如spring 使用的就是commons logging,在引入spring-boot-starter-web 的时候,默认就给排除了
<!-- 这是 spring-boot-starter-web 里面的pom配置 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
<version>1.5.22.RELEASE</version>
<exclusions>
<exclusion>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
如果在没有创建logback.xml的时候,spring boot 默认已经给日志设置了输出样式和默认级别,可以通过application.properties/yml中修改这些值,例如logging.xxx,这里不介绍,因为实际开发中,还是需要创建logback.xml。logback的配置就不再这里说了,主要说logback-spring.xml
<!-- 结合spring.profiles.active=prd 不同的环境使用不同的日志级别-->
<springProfile name="dev">
<root level="debug">
</root>
</springProfile>
<!--
<springProfile name="!dev">
<root level="info">
</root>
</springProfile>
-->
<springProfile name="prd">
<root level="info">
</root>
</springProfile>