SpringBoot日志
1.日志框架
1.1 常见的框架
1.1.1日志门面(抽线层)
- JCL:太老了
- Jboss-logging:一般用不到
- slf4j:最常用的日志门面(与log4j、logback出自同一人)
1.1.2 日志实现:
- Log4j
- JUL
- Log4j2
- Logback
在SpringBoot中一般选用slf4j和logback
2.Slf4j使用
2.1 如何使用Slf4j
在记录日志时,不应该直接调用日志的实现类,而是调用日志抽象层里面的方法。
2.2 不同框架日志改为使用slf4j方法
- 替换图中所示jar包
3. SpringBoot日志关系
<!--SpringBoot日志-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</dependency>
在SpringBoot底层也是使用的slf4j+logback的方式进行日志记录;也导入了上图中的替换其它框架日志的jar包。并且可以适配所有的日志,引入其它框架时,只需要这个框架的日志框架排除。
4.实用
4.1 测试
@RunWith(SpringRunner.class)
@SpringBootTest
public class DemoApplicationTests {
// 记录器
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");
}
}
4.1 application.prperties/yml配置
配置文件(application.properties)
# 修改日志级别
logging.level.com.springbootday03.demo = trace
# 生成日志文件夹(不指定在路径就在当前目录下,指定就在指定的位置。)
# 指定的是文件夹的名称,默认的log文件名称是spring.log
logging.file.path=spring/log
# 在控制台输出的日志格式
logging.pattern.console=
# 指定文件中日志的输出格式
logging.pattern.file=
4.2 单独配置文件
SpringBoot支持日志配置文件(xml),配置文件的名称是所使用的框架名称.xml或者是日志框架-spring.xml。
Spring官方推荐使用的是-spring版本的配置文件,可以使用额外的springProfile
标签。
spirngProfile
:指定环境下使用该配置。
指定环境:在主配置文件(application.properties/yml)中修改active的值。
--)
<layout class="ch. qos . logback .classic . PatternLayout">
<springProfile name= "dev">
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} ----> [%thread] ---> %-5level %logger{50} - %msg%n </patter>
</springProfile>
<springProfile name=" !dev">
<pattern>%d{yyyy-MM-dd HH:mm:ss.sSSI} ==== [%thread] ==== %-5level %logger{50} - %msg%n </patter>
</springProfile>
</1ayout>