SpringBoot日志处理之Logback

本文详细介绍了SpringBoot中如何配置和使用Logback日志框架,包括日志级别、通过配置文件和XML自定义配置。Logback是log4j的作者开发的新一代日志框架,SpringBoot默认使用它。文章还展示了如何通过`logback.xml`配置控制台和文件日志输出,以及`logger`节点和`appender`节点的用法。
摘要由CSDN通过智能技术生成

日志处理是一个正式项目必备的功能,日志要能够根据时间、类型等要素,根据指定格式来保存指定的日志,方便我们观察程序运行情况、定位程序bug。

SpringBoot中推荐使用Logback日志框架。

本节示例项目在https://github.com/laolunsi/spring-boot-examples


slf4j:一个针对各类Java日志框架的统一facade抽象。

java常见日志框架:java.util.logging, log4j, logback, commons-logging

logback是log4j的作者开发的新一代日志框架,目前应用最广泛。SpringBoot默认使用logback,默认INFO级别

Logback:

日志加载顺序:logback.xml -> application.properties -> logback-spring.xml


一、日志级别

log4j定义的日志级别:debug/info/warn/error/fatal

warn,潜在错误;error,错误,可能导致程序退出;fatal,严重错误,程序会退出

还有两个特殊的级别:OFF-最高级别,ALL-最低级别

log4j建议仅使用debug/info/warn/error四个级别

日志级别:ERROR -> WARN -> INFO -> DEBUG

如配置日志级别为INFO,则INFO及以上级别的日志会输出,而比INFO级别低的日志(debug日志)不会被输出。


二、SpringBoot引入logger

直接引入:

    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-logging</artifactId>
      <version>2.1.11.RELEASE</version>
      <scope>compile</scope>
    </dependency>

间接引入:

引入spring-boot-starter,会自动引入spring-boot-starter-logging

引入spring-boot-starter-web,会自动引入spring-boot-starter


三、通过springboot配置文件配置logback

配置输出日志到文件:

logging:
  file: logback-demo.log # 输出到项目目录下

默认是叠加输出,即每次启动项目不会删除之前的日志文件,也不会将当前使用的日志文件清空,而是在下面另起一行。

日志级别:logging.level.*: level-name

*指包名或日志名,日志名如root,表示系统日志

level-name指日志级别,常用debug/info/warn/error

比如:

logging:
  level:
    com.example.logbackdemo: debug # 指定包下日志以debug级别输出
    #root: warn # root日志以warn级别输出,不要用debug级别!!---会卡的!

四、通过XMl文件自定义logback配置

上面的配置确实将日志保存到文件中,但是对于实际项目来说用处不大。

比如:日志文件非常庞大,每天产生的日志大小在数百MB,单个文件能处理么?日志需要分类型进行保存怎么办呢?定制日志格式怎么办呢?

这些都是问题。

幸好,包括logback在内的日志框架大多提供了配置文件功能,最常见的是使用xml文件进行配置。

日志框架默认配置文件:

  • 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

日志加载顺序:logback.xml -> application.properties -> logback-spring.xml

logback框架下:

建议使用logback-spring.xml,也可以在application中通过logging.config=classpath:xxx.xml来指定配置文件。

示例:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <contextName>logback-spring-demo-dev</contextName>
    <property name="pattern" value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg %n"/>
    <property name="pattern-color" value="%yellow(%d{yyyy-MM-dd HH:mm:ss.SSS}) [%thread] %highlight(%-5level) %green(%logger{50}) - %highlight(%msg) %n"/>
    <property name="LOG_HOME" value="logs"/>

    <!-- 控制台输出 -->
    <appender name
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值