SpringBoot的日志

狂风中的少年 提交于 2020-01-21 16:49:32

Spring Boot默认使用LogBack日志系统,如果不需要更改为其他日志系统如Log4j2等,则无需多余的配置。

要使用LogBack,原则上是需要添加dependency依赖的。但因为新建的Spring Boot项目一般都会引用spring-boot-starter或者spring-boot-starter-web,而这两个起步依赖中都已经包含了对于spring-boot-starter-logging的依赖,所以,无需额外添加依赖。

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-logging</artifactId>

 

日志设置

日志的相关设置可以写在application中,也可以单独写在配置文件中,后面出现的设置会覆盖前面的设置。

SpringBoot的日志系统默认将日志打印到控制台上。如果需要输出到文件中,需要对logging.pathlogging.file进行修改。

logging.path=/Users/jackie/workspace/rome/  #该属性用来配置日志文件的路径

logging.file=springbootdemo.log   #该属性用来配置日志文件名

格式的设置是通过pattern来实现的。console用来设置控制台输出格式。file用来设置文件输出格式。

logging.pattern.console=%d{yyyy/MM/dd-HH:mm:ss} [%thread] %-5level %logger- %msg%n

logging.pattern.file=%d{yyyy/MM/dd-HH:mm} [%thread] %-5level %logger- %msg%n

%d     指时间,后面的{yyyy/MM/dd-HH:mm:ss}用来指定格式。

%thread     指线程编号

%level     指日志等级。%-5level中的“5”表示只保留5个字符,“-”表示左对齐

%logger     指日志输出者的名字

%msg     日志消息

%n     表示换行符

注意:在yml文件中,%会引起错误。一般会使用双引号把内容括起来。

#日志相关的配置
logging:
  #文件存放
  file:
    name: log.log     #名称
    path: /     #路径
  pattern:
    console: "%d{yyyy-MM-dd-HH:mm:ss} [%thread] %-5level %logger- %msg%n"
    file: "%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger- %msg%n"

 

更换日志模块

如果换成其他的模块,如log4j2。需要在依赖中先剔除掉默认的LogBack模块,再添加log4j2模块。

<dependency>

 <groupId>org.springframework.boot</groupId>

 <artifactId>spring-boot-starter</artifactId>

 <exclusions>

  <exclusion>

   <groupId>org.springframework.boot</groupId>

   <artifactId>spring-boot-starter-logging</artifactId>

  </exclusion>

 </exclusions>

</dependency>

<dependency>

 <groupId>org.springframework.boot</groupId>

 <!--或者是这个spring-boot-starter-log4j-->

 <artifactId>spring-boot-starter-log4j2</artifactId>

</dependency>

添加完log4j2模块后,还需要添加log4j2的配置文件,一般放到resources里面。做好配置文件后,需要在application.yml文件中指定配置文件。同样的LogBack也可以把一些设置写到配置文件中,然后指定配置文件。这样能减少application里面的代码量。

logging.config=classpath:log4j2.xml

注意:

  1. 如果没有设置logging.config节点,且配置文件的名称是log4j2-spring.xml,也会自动加载的。
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!