日志技术-LogBack、Logback快速入门、Logback配置文件、Logback日志级别

一. 日志技术

  1. 程序中的日志,是用来记录应用程序的运行信息、状态信息、错误信息等。

  2. JUL:(java.util.logging)这是JavaSE平台提供的官方日志框架,也被称为JUL。配置相对简单,但不够灵活,性能较差。

3.Logs4j:一个流行的日志框架,提供了灵活的配置选项,支持多种输出目标。

  1. Logback:基于Log4j升级而来,提供了更多的功能和配置选项,性能优于Log4j。

  2. Slf4j(Simple Logging Facade for Java):简单日志门面,提供了一套日志操作的标准接口及抽象类,允许应用程序使用不同的底层日志框架

二. Logback快速入门

  1. 引入logback的依赖(springboot项目中该依赖已传递)、配置文件logback.xml
XML 复制代码
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <!-- 控制台输出 -->
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <!--格式化输出:%d 表示日期,%thread 表示线程名,%-5level表示级别从左显示5个字符宽度,%logger显示日志记录器的名称, %msg表示日志消息,%n表示换行符 -->
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50}-%msg%n</pattern>
        </encoder>
    </appender>

    <!-- 系统文件输出 -->
    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <!-- 日志文件输出的文件名, %i表示序号 -->
            <FileNamePattern>D:/tlias/tlias-%d{yyyy-MM-dd}-%i.log</FileNamePattern>
            <!-- 最多保留的历史日志文件数量 -->
            <MaxHistory>30</MaxHistory>
            <!-- 最大文件大小,超过这个大小会触发滚动到新文件,默认为 10MB -->
            <maxFileSize>10MB</maxFileSize>
        </rollingPolicy>

        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <!--格式化输出:%d 表示日期,%thread 表示线程名,%-5level表示级别从左显示5个字符宽度,%msg表示日志消息,%n表示换行符 -->
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50}-%msg%n</pattern>
        </encoder>
    </appender>

    <!-- 日志输出级别 -->
    <root level="ALL">
        <appender-ref ref="STDOUT" />
        <appender-ref ref="FILE" />
    </root>
</configuration>
  1. 记录日志:定义日志记录对象Logger,记录日志
java 复制代码
import org.junit.jupiter.api.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.time.LocalDateTime;

public class LogTest {

    private static final Logger logger = LoggerFactory.getLogger(LogTest.class);

    @Test
    public void testLog(){
//       System.out.println(LocalDateTime.now() + " : 开始计算...");

        logger.info("开始计算------");
        int sum = 0;
        int[] nums = {1, 2, 3, 4, 5, 4, 3, 2, 1};
        for (int num : nums) {
            sum += num;
        }

        logger.info("结束计算------" +  sum);
//        System.out.println("计算结果为: "+sum);
//        System.out.println(LocalDateTime.now() + "结束计算...");
        
    }

}

三. Logback配置文件

  1. 配置文件名:logback.xml

  2. 改配置文件是对Logback日志框架输出的日志进行控制的,可以来配置输出的格式、位置及日志开关等。

  3. 常用的两种输出日志的位置:控制台、系统文件

XML 复制代码
 <!-- 控制台输出 -->
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <!--格式化输出:%d 表示日期,%thread 表示线程名,%-5level表示级别从左显示5个字符宽度,%logger显示日志记录器的名称, %msg表示日志消息,%n表示换行符 -->
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50}-%msg%n</pattern>
        </encoder>
    </appender>
XML 复制代码
 <!-- 系统文件输出 -->
    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <!-- 日志文件输出的文件名, %i表示序号 -->
            <FileNamePattern>D:/tlias/tlias-%d{yyyy-MM-dd}-%i.log</FileNamePattern>
            <!-- 最多保留的历史日志文件数量 -->
            <MaxHistory>30</MaxHistory>
            <!-- 最大文件大小,超过这个大小会触发滚动到新文件,默认为 10MB -->
            <maxFileSize>10MB</maxFileSize>
        </rollingPolicy>

        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <!--格式化输出:%d 表示日期,%thread 表示线程名,%-5level表示级别从左显示5个字符宽度,%msg表示日志消息,%n表示换行符 -->
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50}-%msg%n</pattern>
        </encoder>
    </appender>
  1. 开启日志(ALL),关闭日志(off)

四. Logback日志级别

  1. 日志级别指的是日志信息的类型,日志都会分级,常见的日志级别如下(级别由低到高)

|-------|---------------------------------------|-------------------|
| 日志级别 | 说明 | 方式 |
| trace | 追踪,记录程序运行轨迹【使用较少】 | logger.trace(...) |
| debug | 调试,记录程序调试过程中的信息,实际应用中一般将其视为最低级别【使用较多】 | logger.debug(...) |
| info | 记录一般信息,描述程序运行的关键信息【使用较多】 | logger.info(...) |
| warn | 警告信息,记录潜在有害的情况【使用较多】 | logger.warn(...) |
| error | 错误信息【使用较多】 | logger.error(...) |

  1. 可以在配置文件中,灵活的控制输出哪些类型的日志
  1. @Slf4j注解

相关推荐
麦兜*2 天前
Spring Boot 日志配置 + Logback vs Log4j2 性能对比 + 选型建议
spring boot·log4j·logback
M***Z2102 天前
springboot中配置logback-spring.xml
spring boot·spring·logback
sunnyday04264 天前
深入理解Java日志框架:Logback与Log4j2配置对比分析
java·log4j·logback
JavaEdge.7 天前
Logback 启动错误修复说明
logback
煎饼皮皮侠14 天前
快速查找应用日志的几个场景
unzip·logback·grep
垚森16 天前
【问题解决】关于log4j与logback依赖冲突的解决方案
log4j·logback·问题解决·依赖冲突
wL魔法师20 天前
【日志】Logback 配置问题(no applicable action for [springProfile])
logback
ldj202020 天前
springboot logback 设置日志级别
java·spring boot·logback
云叶知秋22 天前
Logback 使用全指南
logback
爱吃土豆的马铃薯ㅤㅤㅤㅤㅤㅤㅤㅤㅤ1 个月前
日志打印配置:logback-spring.xml配置;info和error完全区分了,并且按时间拆分了
xml·spring·logback