Springboot使用logback

文章目录

目录

文章目录

前言

一、添加依赖

二、使用步骤

[三 、测试使用](#三 、测试使用)

总结



前言

Logback 是log4j 框架的作者开发的新一代日志框架,它效率更高、能够适应诸多的运行环境,同时天然支持 SLF4J。

Logback 的定制性更加灵活,同时也是 SpringBoot 的内置日志框架。


一、添加依赖

复制代码
<dependency>    <groupId>org.springframework.boot</groupId>    <artifactId>spring-boot-starter-web</artifactId></dependency>

二、使用步骤

在配置文件中 修改配置

java 复制代码
# 日志配置
logging:
  level:
    root: info
    com.wise: info
    org.springframework: info
    com.baomidou.mybatisplus: info 
  config: classpath:logback.xml

在同级目录下的日志模板文件 logback.xml

java 复制代码
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <property name="log.path" value="./logs"/>
    <property name="console.log.pattern"
              value="%d{yyyy-MM-dd HH:mm:ss.SSS} %highlight(%-5level) %magenta(${PID:-}) - %green([%-21thread]) %cyan(%-35logger{30}) %msg%n" />
    <property name="log.pattern" value="%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n"/>

    <!-- 控制台输出 -->
    <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>${console.log.pattern}</pattern>
            <charset>utf-8</charset>
        </encoder>
    </appender>
    <!-- 文件输出 -->
    <appender name="file_info" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <filter class="ch.qos.logback.classic.filter.LevelFilter">
      <!-- 过滤的级别 -->
      <level>INFO</level>
      <!-- 匹配时的操作:接收(记录) -->
      <onMatch>ACCEPT</onMatch>
      <!-- 不匹配时的操作:拒绝(不记录) -->
      <onMismatch>DENY</onMismatch>
    </filter>
    <file>${log.path}/sys-info.log</file>
    <!-- 循环政策:基于时间创建日志文件 -->
    <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
      <!-- 日志文件名格式 -->
      <fileNamePattern>${log.path}/sys-info.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
      <maxHistory>30</maxHistory>
      <totalSizeCap>20KB</totalSizeCap>
      <maxFileSize>10KB</maxFileSize>
      <!-- appender启动时,进行一次日志文件清理(作用:有些存活很短时间的应用,没机会进行文件清理) -->
      <cleanHistoryOnStart>true</cleanHistoryOnStart>
    </rollingPolicy>
    <encoder>
      <pattern>${log.pattern}</pattern>
    </encoder>
  </appender>
  <appender name="file_error" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <filter class="ch.qos.logback.classic.filter.LevelFilter">
      <!-- 过滤的级别 -->
      <level>ERROR</level>
      <!-- 匹配时的操作:接收(记录) -->
      <onMatch>ACCEPT</onMatch>
      <!-- 不匹配时的操作:拒绝(不记录) -->
      <onMismatch>DENY</onMismatch>
    </filter>
    <file>${log.path}/sys-error.log</file>
    <!-- 循环政策:基于时间创建日志文件 -->
    <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
      <!-- 日志文件名格式 -->
      <fileNamePattern>${log.path}/sys-error.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
      <maxHistory>30</maxHistory>
      <totalSizeCap>20KB</totalSizeCap>
      <maxFileSize>10KB</maxFileSize>
      <!-- appender启动时,进行一次日志文件清理(作用:有些存活很短时间的应用,没机会进行文件清理) -->
      <cleanHistoryOnStart>true</cleanHistoryOnStart>
    </rollingPolicy>
    <encoder>
      <pattern>${log.pattern}</pattern>
    </encoder>
  </appender>
  <!-- 系统日志输出 -->
  <appender name="file_debug" class="ch.qos.logback.core.rolling.RollingFileAppender">    
    <filter class="ch.qos.logback.classic.filter.LevelFilter">
      <!-- 过滤的级别 -->
      <level>DEBUG</level>
    </filter>
    <file>${log.path}/sys-debug.log</file>
    <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
      <fileNamePattern>${log.path}/sys-debug.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
      <maxHistory>30</maxHistory>
      <totalSizeCap>20KB</totalSizeCap>
      <maxFileSize>10KB</maxFileSize>
      <!-- appender启动时,进行一次日志文件清理(作用:有些存活很短时间的应用,没机会进行文件清理) -->
      <cleanHistoryOnStart>true</cleanHistoryOnStart>
    </rollingPolicy>
    <encoder>
      <pattern>${log.pattern}</pattern>
    </encoder>
  </appender>  
  <!-- 用户访问日志输出  -->
    <appender name="sys_user" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${log.path}/sys_user.log</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
      <fileNamePattern>${log.path}/sys-user.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
      <maxHistory>30</maxHistory>
      <totalSizeCap>20KB</totalSizeCap>
      <maxFileSize>10KB</maxFileSize>
      <!-- appender启动时,进行一次日志文件清理(作用:有些存活很短时间的应用,没机会进行文件清理) -->
      <cleanHistoryOnStart>true</cleanHistoryOnStart>
    </rollingPolicy>
        <encoder>
            <pattern>${log.pattern}</pattern>
        </encoder>
    </appender>

    <root level="info">
        <appender-ref ref="console"/>
    </root>

    <!--系统操作日志-->
    <root level="error">
        <appender-ref ref="file_error"/>
    </root>

    <!--系统操作日志-->
    <root level="info">
        <appender-ref ref="file_info"/>
        <appender-ref ref="file_error"/>
    </root>

    <!--系统操作日志-->
    <root level="debug">
        <appender-ref ref="file_debug"/>
        <appender-ref ref="file_info"/>
        <appender-ref ref="file_error"/>
    </root>    
    <!--系统用户操作日志-->
    <logger name="sys_user" level="info">
        <appender-ref ref="sys_user"/>
    </logger>
</configuration>

三 、测试使用

java 复制代码
在需要日志记录的类上添加该注解@Slf4j,然后直接使用下面的就能打印日志了

    log.info("这是一条测试info日志");
    log.warn("这是一条测试info日志:{}", "warn");
   
    log.error("这是一条测试info日志", e);

总结

相关推荐
魔道不误砍柴功6 天前
Spring Boot日志系统详解:Logback与SLF4J的默认集成
spring boot·后端·logback
神州永泰14 天前
Java logback框架日志输出中文乱码的解决方案(windows)
java·windows·logback
遥不可及~~斌15 天前
Spring Boot 项目日志系统全攻略:Logback、Log4j2、Log4j与SLF4J整合指南
spring boot·log4j·logback
IT瘾君19 天前
Java基础:Logback日志框架
java·开发语言·logback
wisdom_zhe21 天前
Spring Boot 日志 配置 SLF4J 和 Logback
java·spring boot·logback
我命由我1234523 天前
Spring Boot 自定义日志打印(日志级别、logback-spring.xml 文件、自定义日志打印解读)
java·开发语言·jvm·spring boot·spring·java-ee·logback
字节王德发1 个月前
什么是logback FixedWindowRollingPolicy的文件滚动策略?
java·数据库·logback
zru_96021 个月前
springboot中logback日志配置
java·spring boot·logback
Foyo Designer1 个月前
【 <二> 丹方改良:Spring 时代的 JavaWeb】之 Spring Boot 中的日志管理:Logback 的集成
java·开发语言·spring boot·后端·spring·logback
₁ ₀ ₂ ₄1 个月前
Logback 日志滚动策略配置指南:从基础到进阶
java·spring boot·logback