简介
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!");
}
}
标签:logger,log,框架,org,Logger,Logback,日志
From: https://www.cnblogs.com/yuey6670/p/18175809