Logback日志框架

简介

Logback是一个成熟和稳定的日志框架,是Log4j框架的继承者,具有更好的性能和更加丰富的配置选项。它可以与Spring Boot框架集成,实现日志输出到控制台或者文件。

基本概念

Logback由三个模块组成

  • logback-core:提供了更低级别的功能,最基本的日志系统。
  • logback-classic:提供了更高级别的功能,比如SLF4J API的实现,支持MDC(Mapped Diagnostic Contexts)。
  • logback-access:提供了用于HTTP访问日志的功能,包括访问日志和基于XML的HTTP访问日志。

Logback使用Logger来记录和输出日志,LoggerContext是Logger的容器,主要维护Logger和Appender的关系。

Appender用于将日志输出到不同的地方,比如控制台或者文件。

配置文件

<?xml version="1.0" encoding="UTF-8"?>

<configuration>

  <!-- 输出到控制台 -->
  <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
    <encoder>
      <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
    </encoder>
  </appender>

  <!-- 输出到文件 -->
  <appender name="file" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <file>log/demo.log</file>
    <encoder>
      <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
    </encoder>
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
      <fileNamePattern>log/demo.%d{yyyy-MM-dd}.log</fileNamePattern>
    </rollingPolicy>
  </appender>

  <!-- 设置日志输出级别 -->
  <root level="INFO">
    <appender-ref ref="console" />
    <appender-ref ref="file" />
  </root>

</configuration>

Logback的日志级别

Logback定义了五个日志级别,按照从低到高的顺序为TRACE、DEBUG、INFO、WARN、ERROR。在实际应用中,应根据需要选择适当的日志级别。

import org.slf4j.Logger;  
import org.slf4j.LoggerFactory;  
  
public class Slf4jExample {  
  
    private static final Logger logger = LoggerFactory.getLogger(MySlf4jExample.class);  
  
    public static void main(String[] args) {  
        logger.info("This is an info message.");  
        logger.debug("This is a debug message.");  
        logger.warn("This is a warning message.");  
        logger.error("This is an error message.");  
    }  
}

RollingFileAppender

RollingFileAppender是一种按照一定规则切分日志文件的Appender。它可以按照时间、文件大小等规则来切分日志文件。

<appender name="file" class="ch.qos.logback.core.rolling.RollingFileAppender">
  <file>logs/demo.log</file>
  <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
    <fileNamePattern>logs/demo.%d{yyyy-MM-dd}.%i.log.gz</fileNamePattern>
    <maxFileSize>10MB</maxFileSize>
    <maxHistory>30</maxHistory>
  </rollingPolicy>
  <encoder>
    <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
  </encoder>
</appender>

Springboot使用Logback

依赖注入

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-logging</artifactId>
        </dependency>

创建配置文件

建 Logback 的配置文件,通常为 logback.xml,并将其放置在类路径下(src/main/resources)。

使用日志

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class LogbackTest {
    // 会使用 Logback 来创建一个 Logger 实例
    private static final Logger logger = LoggerFactory.getLogger(LogbackTest.class);
    public static void main(String[] args) {
        logger.info("Hello, world!");
    }
}
posted @ 2024-05-06 21:35  yuey6670  阅读(13)  评论(0编辑  收藏  举报