Springboot整合logback实战

logback简介

Logback:是由 log4j 创始人设计的一个开源日志组件。相比于log4j,Logback重写了内核,在一些关键执行路径上性能提升很多。而且logback不仅性能提升了,初始化内存加载也更小。

  • Logback官网:https://logback.qos.ch/
  • Logback文档:https://logback.qos.ch/documentation.html

logback当前分成三个模块:logback-core,logback- classic和logback-access。
ogback-core是其它两个模块的基础模块。
ogback-classic是log4j的一个 改良版本。
此外logback-classic完整实现SLF4J API使你可以很方便地更换成其它日志系统如log4j或JDK14 Logging。
logback-access访问模块与Servlet容器集成提供通过Http来访问日志的功能。

Springboot 默认日志Logback

Spring Boot在所有内部日志中使用Commons Logging,但是默认配置也提供了对常用日志的支持,如:Java Util Logging,Log4J, Log4J2和Logback。每种Logger都可以通过配置使用控制台或者文件输出日志内容。默认情况下,Spring Boot会用Logback来记录日志,并用INFO级别输出到控制台。
Spring Boot项目在引入spring-boot-starter依赖时,其中默认已包含了spring-boot-starter-logging,所以不需要重复导入slf4j-api、logback-classic、logback-core等依赖。在新建项目中我们可以ctrl 左键点进去看一下就知道了。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
可以看到Springboot是已经整合了相关依赖,如果手动引入也没错,但是没必要重复引入依赖。

日志输出级别

TRACE < DEBUG < INFO < WARN < ERROR < FATAL。

如果设置为 WARN ,则低于 WARN 的信息都不会输出。
Spring Boot中默认配置ERROR、WARN和INFO级别的日志输出到控制台。
您还可以通过启动您的应用程序 —debug 标志来启用“调试”模式(开发的时候推荐开启 )
在运行命令后加入—debug标志,如:$ java -jar argusTest.jar —debug
在application.properties中配置debug=true,该属性置为true的时候,核心Logger(包含嵌入式容器、hibernate、spring)会输出更多内容,但是你自己应用的日志并不会输出为DEBUG级别。
默认情况下,Springboot将日志输出到控制台,不会写到日志文件。如果要编写除控制台输出之外的日志文件,则需在spring配置文件application.properties中设置logging.file或logging.path属性。
Springboot整合logback支持俩种方式设置logback相关属性,一种通过配置文件设置属性,一种通过自定义配置xml文件(logback相关属性详细可以参考官网,接下里重点讲第二种,配置灵活简单易实用)。

自定义文件配置

SpringBoot官方推荐优先使用带有-spring的文件名作为你的日志配置(如使用logback-spring.xml,而不是logback.xml),当然Springboot肯定不会随意规定,使用logback-spring.xml命名的配置文件我们可以使用pring boot特有的配置项,比如使用springProfile配置,不需要logging.config指定不同环境使用不同配置文件。
Springboot强大之处就是整合各种相关框架依赖,方便我们快速构建项目,如果使用其他日志框架我们也只需要按规则命名就可(前体是将配置文件放在项目resources目录下)。根据不同的日志系统,你可以按如下规则组织配置文件名,都能被正确加载.

Logback:logback-spring.xml, logback.xml Log4j:log4j-spring.properties,
log4j-spring.xml, log4j.properties, log4j.xml
Log4j2:log4j2-spring.xml, log4j2.xml JDK (Java Util
Logging):logging.properties

当我们按照规则来命名相关配置文件时,spring会自动到resources目录下加载配置文件,在application.properties中我们无需指定配置文件。如果你又不想用logback.xml或者logback-spring.xml作为Logback配置的名字,可以通过logging.config属性指定自定义的名字

logging.config=classpath:xxxx.xml

logback-spring.xml

<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="10 seconds" debug="false">
    <property name="LOG_PATH" value="E:/panbo/logs/aqs"/>
    <property name="LOG_FILE_ERROR" value="E:/panbo/logs/aqs/error"/>
    <property name="LOG_FILE_INFO" value="E:/panbo/logs/aqs/info"/>
    <property name="LOG_NAME" value="aqs"/>

    <!-- 彩色日志 -->
    <!-- 彩色日志依赖的渲染类 -->
    <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
    <conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter"/>
    <conversionRule conversionWord="wex"
                    converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter"/>
    <conversionRule conversionWord="wEx"
                    converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter"/>
    <!-- 彩色日志格式 -->
    <property name="CONSOLE_LOG_PATTERN"
              value="%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} [%clr(%thread){yellow}] %clr(%-5level){blue} %clr(%logger{36}){cyan} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}"/>
    <property name="CONSOLE_LOG_PATTERN_NO_COLOR"
              value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}"/>
<
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值