SpringBoot--日志配置--application.yml

不操千曲而后晓声,观千剑而后识器。这篇文章主要讲述SpringBoot--日志配置--application.yml相关的知识,希望能为你提供帮助。


?
简介        本文介绍SpringBoot的日志配置。
综述所有配置项

Spring的Envrionment到系统属性的转换

Spring Environment
System Property
Comments
logging.exception-conversion-word
LOG_EXCEPTION_CONVERSION_WORD
在记录异常时使用的转换字。
logging.file.name
logging.file
如果定义,在默认的日志配置中使用
logging.file.path
LOG_PATH
如果定义,在默认的日志配置中使用
logging.pattern.console
logging.pattern.console
日志模式使用控制台(stdout)。(只支持默认logback设置。)
logging.pattern.file
FILE_LOG_PATTERN
日志模式中要使用的文件(如果log_file启用)。(只支持默认logback设置。)
logging.pattern.levelFILE
LOG_LEVEL_PATTERN
格式来呈现的日志级别(默认为5P)。(只支持默认logback设置。)
PID
PID
当前的处理进程(process)ID(如果能够被发现且还没有作为操作系统环境变量被定义)
  比如:定义logging.file.path=logs,那么在logback-spring.xml中,可以直接用$LOG_PATH来使用。
指定配置文件        Spring Boot 的 logback 默认使用 src/main/resources 目录下的 logback.xml 或 logback-spring.xml 作为配置文件。Spring Boot 官方推荐使用 logback-spring.xml,因为可以在日志输出的时候引入一些 Spring Boot 特有的配置项。
        也可指定配置文件: logging.config=classpath:logback-confg.xml
其他:由于日志是在ApplicationContext被创建之前初始化的,所以不可能在Spring的@Configuration文件中通过@PropertySources控制日志。系统属性和平常的Spring Boot外部配置文件能正常工作
日志级别设置法1:application.yml的logging.level.*
默认为INFO。下面两种格式常用:
  • logging.level.root=WARN # root 日志以 WARN 级别输出信息;
  • logging.level.com.example.a=DEBUG # 指定包下的类以 DEBUG 级别输出;
级别从高到低:OFF 、 FATAL 、 ERROR 、 WARN 、 INFO 、 DEBUG 、 TRACE 、 ALL
法2:命令行控制
java -jar D:\\demo.jar --debug 
法3: application.yml的debug
debug=true
该属性置为true时,核心Logger(包含嵌入式容器、hibernate、spring)会输出更多内容,但你自己应用的日志并不会输出为DEBUG级别。 
指定日志文件设置 logging.file.name 或者 logging.file.path:
  • logging.file.name
    设置日志文件:支持绝对路径、相对路径,相对路径的话是相对应用的根目录,比如 logging.file.name=logs/demo.log;
    默认:spring.log
  • logging.file.path
    设置日志路径:支持绝对路径、相对路径,比如 logging.file.path=logs,日志文件默认会存为 spring.log;
    默认:根路径/LOG_PATH_IS_UNDEFINED/
logging.file.name
logging.file.path
描述
示例
不指定
不指定
只记录到控制台
指定
不指定
记录到:指定文件


logging.file.name=demo.log #在项目路径下生成demo.log
logging.file.name=logs/demo.log #在项目路径下生成logs/demo.log
logging.file.name=e:/logs/demo.log #生成:e:/logs/demo.log


不指定
指定
记录到:指定路径/spring.log


logging.file.path=logs #在项目路径下生成logs/spring.log
logging.file.path=e:/logs/ #生成:e:/logs/spring.log


注意:若我们只配置application.yml而不提供xml文件,若配置了logging.file.name 或者 logging.file.path,则必须配置:logging.level.*,否则,将没有任何日志产生。
比如:
logging:
file:
name: demo.log
level:
root: info

此时,将会生成:项目根路径/demo.log
分组日志级别
批量设置日志级别,比如设定com.michael.controller 和 com.michael.service为同一组(包和包之间用英文逗号分隔):
logging.group.michael=com.michael.controller,com.michael.service
logging.level.michael=INFO

Spring Boot 默认提供两个日志组:
  • logging.group.web=org.springframework.core.codec,org.springframework.http,org.springframework.web
  • logging.group.sql=org.springframework.jdbc.core
其他配置
  1. logging.file.max-size
  1. 最大日志文件大小。默认为10MB。
  1. logging.file.max-history
  1. 最大归档文件保存的天数。默认为7
  1. logging.pattern.console
  1. 控制台输出的日志模式。默认如下
%clr(%d$LOG_DATEFORMAT_PATTERN:-yyyy-MM-dd HH:mm:ss.SSS)faint %clr($LOG_LEVEL_PATTERN:-%5p) %clr($PID:- )magenta %clr(---)faint %clr([%15.15t])faint %clr(%-40.40logger39)cyan %clr(:)faint %m%n$LOG_EXCEPTION_CONVERSION_WORD:-%wEx

  1. logging.pattern.dateformat
  1. 日志的日期格式。默认为:yyyy-MM-dd HH:mm:ss.SSS
  1. logging.pattern.file
  1. 日志文件使用的日志模式。默认为:
%d$LOG_DATEFORMAT_PATTERN:-yyyy-MM-dd HH:mm:ss.SSS $LOG_LEVEL_PATTERN:-%5p $PID:---- [%t] %-40.40logger39 : %m%n$LOG_EXCEPTION_CONVERSION_WORD:-%wEx

  1. logging.pattern.level
  1. 日志级别。默认为:%5P
  1. logging.pattern.rolling-file-name
  1. 文件超过max-size时保存的日志的的文件名。默认为:$LOG_FILE.%dyyyy-MM-dd.%i.gz
  2. %i:若一天中多次超过了max-size,则给这些文件添加序号。
  3. 若不想压缩,可以将gz去掉或者改掉,比如:$LOG_FILE.%dyyyy-MM-dd.%i.log
【SpringBoot--日志配置--application.yml】


    推荐阅读