springboot日志配置和logback-spring.xml配置

一、springboot日志配置

1. 默认日志 Logback

  默认情况下,Spring Boot会用Logback来记录日志,并以INFO级别输出到控制台。

2. 文件输出

  如果要编写除控制台输出之外的日志文件,则需在 application.properties 中设置 logging.file 或 logging.path 属性。

logging.file ,设置文件,可以是绝对路径,也可以是相对路径。如: logging.file=my.log
logging.path ,设置目录,会在该目录下创建 spring.log 文件,并写入日志内容

注:二者不能同时使用,如若同时使用,则只有 logging.file 生效

3.  级别控制

 所有支持的日志记录系统都可以在 Spring 环境中设置记录级别(例如在 application.properties 中)

格式为:logging.level.* = LEVEL

logging.level :日志级别控制前缀,*为包名或Logger名

LEVEL :选项 TRACE, DEBUG, INFO, WARN, ERROR, FATAL, OFF

logging.level.com.dudu=DEBUG
logging.level.root=WARN

 4. 自定义日志配置

 根据不同的日志系统,你可以按如下规则组织配置文件名,就能被正确加载

  • Logback: logback-spring.xml, logback.xml

 Spring Boot 官方推荐优先使用带有 -spring 的文件名作为你的日志配置(如使用 logback-spring.xml ,而不是 logback.xml ),命名为 logback-spring.xml 的日志配置文件, spring boot 可以为它添加一些 spring boot 特有的配置项。

默认的命名规则,并且放在 src/main/resources 下面即可

如果你即想完全掌控日志配置,但又不想用 logback-spring.xml 或者logback.xml作为 Logback 配置文件的名字, application.yml 可以通过 logging.config 属性指定自定义的名字:

logging.config=classpath:logging-config.xml

当没有配置时,使用默认配置。

 二、logback-spring.xml配置文件

1. 根节点configuration

  • scan:当此属性设置为 true 时,配置文件如果发生改变,将会被重新加载,默认值为 true 。
  • scanPeriod:设置监测配置文件是否有修改的时间间隔,如果没有给出时间单位,默认单位是毫秒。当 scan 为 true 时,此属性生效。默认的时间间隔为1分钟。
  • debug:当此属性设置为 true 时,将打印出 logback 内部日志信息,实时查看 logback 运行状态。默认值为 false 。

2. root节点

root节点是必选节点,用来指定最基础的日志输出级别,只有一个level属性

level:用来设置打印级别,大小写无关:TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF,不能设置为INHERITED或者同义词NULL。

默认是INFO。

可以包含零个或多个元素,标识这个appender将会添加到这个loger。

3. property节点

用来定义变量值的标签, 有两个属性,name和value;其中name的值是变量的名称,value的值时变量定义的值。通过定义的值会被插入到logger上下文中。定义变量后,可以使“${}”来使用变量。

4. appender节点

 appender用来格式化日志输出节点,有两个属性name和class,class用来指定哪种输出策略,常用就是控制台输出策略和文件输出策略。

可以看到 layout 和 encoder ,都可以将事件转换为格式化后的日志记录,但是控制台输出使用 layout ,文件输出使用 encoder 。

5. loger节点

用来设置某一个包或者具体的某一个类的日志打印级别以及指定 仅有一个 name 属性,一个可选的 level 和一个可选的 addtivity 属性。

name :用来指定受此loger约束的某一个包或者具体的某一个类。

level :用来设置打印级别,大小写无关:TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF,还有一个特俗值INHERITED或者同义词NULL,代表强制执行上级的级别。如果未设置此属性,那么当前loger将会继承上级的级别。

addtivity :是否向上级loger传递打印信息。默认是true。

日志的传递属性需要特别注意,默认情况下,该属性为true,配置不合理时,会出现重复的日志输出。

通过loger,可以为特定的包设置不同的日志级别,有利于有针对性地输出特定环境的日志信息。

你可能感兴趣的:(开发框架,spring,boot,logging,logback)