SpringBoot日志配置

川长思鸟来 2023-10-01 17:21 85阅读 0赞

SpringBoot日志配置

1.Spring Boot默认日志框架

Spring Boot默认使用LogBack日志系统,如果不需要更改为其他日志系统如Log4j2等,则无需多余的配置,LogBack默认将日志打印到控制台上。如果要使用LogBack,原则上是需要添加dependency依赖的
  1. <dependency>
  2. <groupId>org.springframework.boot</groupId>
  3. <artifactId>spring-boot-starter-logging</artifactId>
  4. </dependency>
但是因为新建的Spring Boot项目一般都会引用spring-boot-starter或者spring-boot-starter-web,而这两个起步依赖中都已经包含了对于spring-boot-starter-logging的依赖,所以,无需额外添加依赖。

2.常用的日志框架














日志门面 日志实现
JCL、SLF4j、jboss-logging Log4j、 JUL(java.util.logging) Log4j2、 Logback
2.1日志门面: 不是具体的日志解决方案,它只服务于各种各样的日志系统,允许最终用户在部署其应用时使用其所希望的日志实现来使用日志功能。
2.2日志实现: 是基于对应的日志门面的规范来实现的具体日志功能的框架
2.3 框架之间由于历史迭代原因及框架性能等问题,选择的日志框架也不一样,常见的框架与默认选择的日志系统关系如下:





















框架 日志
Spring JCL
SpringBoot Sfl4j–>logback
Hibernate3 Slf4j
2.4而框架使用的日志不一样,SpringBoot早已考虑这个问题我们看一下它是怎么解决的

在这里插入图片描述

可以看到 他把其他的框架日志 偷梁换柱了 都使用的是 slf4j

3. 日志输出级别 以及使用

日志输出级别 TRACE > DEBUG > INFO > WARN > ERROR
3.1 Springboot简单的日志使用 (方式一)
LoggerFactory.getLogger(MyTest8.class);这里面的MyTest8.class是为了方便快速定位是哪一个类输出打印的日志
  1. public class LoggerExec {
  2. private static final Logger logger = LoggerFactory.getLogger(MyTest8.class);
  3. public static void main(String[] args) {
  4. logger.trace("trace");
  5. logger.debug("debug");
  6. logger.info("info");
  7. logger.warn("warn");
  8. logger.error("error");
  9. }
  10. }
3.2 Springboot简单的日志使用 (方式二)
导入依赖,并且 你的IDEA要安装了Lombok插件
  1. <dependency>
  2. <groupId>org.projectlombok</groupId>
  3. <artifactId>lombok</artifactId>
  4. <optional>true</optional>
  5. </dependency>
@Sif4相当于 private final Logger log= LoggerFactory.getLogger(MyTest8.class);
  1. @Slf4j
  2. public class MyTest9 extends ParentTest {
  3. @Test
  4. public void test1() {
  5. log.debug("debug");
  6. log.info("info");
  7. log.warn("warn");
  8. log.error("error");
  9. }
  10. }

4. 日志打印级别

日志的打印级别 TRACE < DEBUG < INFO < WARN < ERROR < FATAL ,且级别是逐渐提供,如果日志级别设置为INFO,则意味TRACE和DEBUG级别的日志都看不到。
Spring Boot默认级别就是INFO,可通过 logging.level.root=warn 改变SpringBoot日志打印级别

5.日志的设置

(logging.file=文件名,logging.path=文件路径已经过时了,变成logging.file.name=文件路径/文件名)
  1. logging:
  2. file:
  3. name: F:/springboot.log
  4. pattern:
  5. #规定输出到控制台的格式
  6. console: "%d{yyyy-MM-dd HH:mm:ss.SSS} == %-5level == [%thread] == %logger{15} == %msg%n"
  7. #规定输出到日志文件的格式
  8. file: "%d{yyyy-MM-dd HH:mm:ss.SSS} == %-5level == [%thread] == %logger{15} == %msg%n"
  9. #规定指定包的 日志级别, loggin.level.root是整个项目
  10. level:
  11. com.example: trace

- %d 日期时间 {格式}

- %-5level 左对齐5个字符 日志等级

- %thread 线程名

- %logger{15} 输出日志打印所在的类 限制15个字符

发表评论

表情:
评论列表 (有 0 条评论,85人围观)

还没有评论,来说两句吧...

相关阅读

    相关 springBoot日志配置

    概述   在计算机的世界里,日志的重要性不言而喻。系统日志,应用日志等都可以帮我们更快的定位的计算机问题出现在哪里。而springBoot默认使用LogBack日志,当然如

    相关 springboot 日志配置

    spring boot默认使用logback作为日志系统,可以结合slf4j日志框架使用,springboot已经为当前使用的日志框架的控制台输出和文件输出做好了配置, 我们

    相关 SpringBoot日志配置

    SpringBoot 是为了简化 Spring 应用的创建、运行、调试、部署等一系列问题而诞生的产物,自动装配的特性让我们可以更好的关注业务本身而不是外部的XML配置,我们只需