spring boot 默认日志 springboot日志配置文件

您所在的位置:网站首页 spring日志框架 spring boot 默认日志 springboot日志配置文件

spring boot 默认日志 springboot日志配置文件

#spring boot 默认日志 springboot日志配置文件| 来源: 网络整理| 查看: 265

今天介绍一下SpringBoot配置日志文件

SpringBoot在所有的内部日志中使用Commons Logging,但是默认配置也提供了对常用日志的支持,如Java Util Logging,Log4J,Log4J2和Logback。但是每种Logger都可以通过配置使用控制台或者文件输出日志内容。

不同的日志框架使用不同的配置文件

Logback

logback-spring.xml, logback-spring.groovy, logback.xml, logback.groovy

Log4j

log4j-spring.properties, log4j-spring.xml, log4j.properties, log4j.xml

Log4j2

log4j2-spring.xml, log4j2.xml

JDK(Java Util Logging)

logging.properties

一.SpringBoot默认日志Logback

SLF4J,是一个针对各类Java日志框架的统一Façade抽象。Java有很多的日志框架,如java.util.logging,log4j,logback,commons-logging,Spring框架使用的是Jakarta Commons Logging API(JCL)。而SLF4J定义了统一的日志抽象接口,而真正的日志实现则是在运行决定的。

Logback是log4j框架的作者开发的新一代日志框架,它能够适应诸多运行环境,支持SLF4J。

(1)默认情况下,SpringBoot底层使用SLF4J+Logback记录日志。

(2)SpringBoot也把其他日志替换成了SLF4J。

spring boot 默认日志 springboot日志配置文件_java

SpringBoot能够自动适配所有的日志,而且底层使用slf4j+logback的方式记录日志,引入其他框架的时候,只需要把这个框架依赖的日志框架排除掉。

二.日志输出的内容元素

日志输出的内容元素具体如下:

时间日期:精确到毫秒

日志级别:ERROR,WARN,INFO,DEBUG,TRACE

进程ID2

分隔符:---标识实际日志的开始

线程名:方括号括起来的内容

Logger名:通常为源代码类名

日志内容

三.添加日志依赖

网上给出的日志依赖为:

org.springframework.boot spring-boot-starter-logging

Spring boot应用将自动使用logback作为应用日志框架,Spring Boot启动的时候,由org.springframework.boot.logging.Logging-Application-Listener根据情况初始化并使用。spring-boot-starter中包含spring-boot-starter-logging,该依赖内容就是Spring boot默认的日志框架logback。

我自己使用的依赖如下:

SpringBoot的日志依赖为:

org.springframework.boot spring-boot-starter-logging

Spring框架使用的是commons-logging

org.springframework spring-core commons-logging commons-logging 四.控制台输出

日志级别从低到高分别是TRACE logback debug %d{yyyy-MM-dd HH:mm:ss.SSS}------------> [%thread] %-5level %logger{50} - %msg%n UTF-8 ${log.path}/web_debug.log %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n UTF-8 ${log.path}/web-debug-%d{yyyy-MM-dd}.%i.log 100MB 15 debug ACCEPT DENY ${log.path}/web_info.log %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n UTF-8 ${log.path}/web-info-%d{yyyy-MM-dd}.%i.log 100MB 15 info ACCEPT DENY ${log.path}/web_warn.log %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n UTF-8 ${log.path}/web-warn-%d{yyyy-MM-dd}.%i.log 100MB 15 warn ACCEPT DENY ${log.path}/web_error.log %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n UTF-8 ${log.path}/web-error-%d{yyyy-MM-dd}.%i.log 100MB 15 ERROR ACCEPT DENY

可以在logback.xml中配置对应的日志信息。启动程序输出内容如下:

spring boot 默认日志 springboot日志配置文件_java_09

或者配置logback-spring.xml文件,如果配置成logback-spring.xml文件,则可以使用标签。

spring boot 默认日志 springboot日志配置文件_xml_10

logback-spring.xml

logback debug %d{yyyy-MM-dd HH:mm:ss.SSS}------------> [%thread] %-5level %logger{50} - %msg%n UTF-8 %d{yyyy-MM-dd HH:mm:ss.SSS}================= [%thread] %-5level %logger{50} - %msg%n UTF-8 ${log.path}/web_debug.log %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n UTF-8 ${log.path}/web-debug-%d{yyyy-MM-dd}.%i.log 100MB 15 debug ACCEPT DENY ${log.path}/web_info.log %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n UTF-8 ${log.path}/web-info-%d{yyyy-MM-dd}.%i.log 100MB 15 info ACCEPT DENY ${log.path}/web_warn.log %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n UTF-8 ${log.path}/web-warn-%d{yyyy-MM-dd}.%i.log 100MB 15 warn ACCEPT DENY ${log.path}/web_error.log %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n UTF-8 ${log.path}/web-error-%d{yyyy-MM-dd}.%i.log 100MB 15 ERROR ACCEPT DENY

当在application.properties文件中配置spring.profiles.active=dev时,激活开发环境

application.properties

# 应用名称 spring.application.name=logdemo # 应用服务 WEB 访问端口 server.port=8080 logging.level.com.zk.logdemo=trace #logging.file.name=zk.log #logging.file.path=D:/zk.log #logging.pattern.console=%d{yyyy-MM-dd HH:mm:ss:SSS}----> [%thread]----> %-5level----> %logger{50}----> -%msg%n #logging.pattern.file=%d{yyyy-MM-dd HH:mm:ss:SSS}----> [%thread]----> %-5level----> %logger{50}----> -%msg%n spring.profiles.active=dev

 此时运行测试例

spring boot 默认日志 springboot日志配置文件_spring_11

如果未激活开发环境,去掉spring.profiles.active=dev

此时运行测试例

spring boot 默认日志 springboot日志配置文件_java_12

SpringBoot切换日志框架

4.0.0 com.zk logdemo 0.0.1-SNAPSHOT logdemo Demo project for Spring Boot 1.8 UTF-8 UTF-8 2.3.7.RELEASE org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-starter-logging org.springframework.boot spring-boot-starter-log4j2 org.springframework.boot spring-boot-starter logback-core ch.qos.logback org.springframework.boot spring-boot-starter-logging org.springframework.boot spring-boot-starter-test test org.junit.vintage junit-vintage-engine org.springframework.boot spring-boot-dependencies ${spring-boot.version} pom import org.apache.maven.plugins maven-compiler-plugin 3.8.1 1.8 1.8 UTF-8 org.springframework.boot spring-boot-maven-plugin 2.3.7.RELEASE com.zk.logdemo.LogdemoApplication repackage repackage

 排除spring-boot-starter-logging的日志框架,切换为spring-boot-starter-log4j2的日志框架

5.2配置多个logback环境

我们也可以在logback-spring.xml文件中配置多个logback环境,具体logback-spring.xml配置如下:

首先将logback.xml更改命名为logback-spring.xml,需要更改文件名,否则无法识别标签。

spring boot 默认日志 springboot日志配置文件_spring_13

 

logback-spring.xml

[%-5level]---> %d{${DATETIME}}---> [%thread]---> %logger{36}---> - %m%n [%-5level]=== %d{${DATETIME}}=== [%thread]=== %logger{36}=== - %m%n [%-5level]---> %d{${DATETIME}}---> [%thread]---> %logger{36}---> - %m%n [%-5level]---> %d{${DATETIME}}---> [%thread]---> %logger{36}---> - %m%n ERROR ACCEPT DENY ${ROOT}%d/error.%i.log ${MAXHISTORY} ${FILESIZE} [%-5level]---> %d{${DATETIME}}---> [%thread]---> %logger{36}---> - %m%n WARN ACCEPT DENY ${ROOT}%d/warn.%i.log ${MAXHISTORY} ${FILESIZE} [%-5level] %d{${DATETIME}} [%thread] %logger{36} - %m%n INFO ACCEPT DENY ${ROOT}%d/info.%i.log ${MAXHISTORY} ${FILESIZE} [%-5level] %d{${DATETIME}} [%thread] %logger{36} - %m%n DEBUG ACCEPT DENY ${ROOT}%d/debug.%i.log ${MAXHISTORY} ${FILESIZE} [%-5level] %d{${DATETIME}} [%thread] %logger{36} - %m%n TRACE ACCEPT DENY ${ROOT}%d/trace.%i.log ${MAXHISTORY} ${FILESIZE}

  配置多个logback环境的核心代码如下:

[%-5level]---> %d{${DATETIME}}---> [%thread]---> %logger{36}---> - %m%n [%-5level]=== %d{${DATETIME}}=== [%thread]=== %logger{36}=== - %m%n [%-5level]---> %d{${DATETIME}}---> [%thread]---> %logger{36}---> - %m%n

 然后在application.properties配置文件中进行配置:

logging.level.com.zk=debug logging.file=SpringBoot.log logging.path=/spring/log #logging.pattern.console=%d{yyyy-MM-dd HH:mm:ss:SSS} [%thread] %-5level %logger{50} -%msg%n #logging.pattern.file=%d{yyyy-MM-dd HH\:mm\:ss\:SSS} [%thread] %-5level %logger{50} -%msg%n spring.profiles.active=prod

在logback-spring.xml中配置环境启动,启动后运行效果如下:

spring boot 默认日志 springboot日志配置文件_xml_14



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3