Logback使用指南

概述

Logback 是 Java 社区内应用最为广泛的日志框架之一,其作为 Log4j 的替代方案,相较前者不仅拥有更优异的性能表现,还提供了更为多样化的配置选项与更具灵活性的日志归档机制。

本文将对 Logback 的核心架构展开深入解析,助力开发者掌握通过该框架增强应用日志能力的相关技能。

Logback架构

Logback 三大组件:

✅ Logger:日志的上下文,是应用中用于生成日志的入口

✅ Appender:决定日志的最终输出位置(如控制台、文件等)

✅ Layout:定义日志的输出格式

Springboot集成

1. pom.xml

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

2. logback.xml

在classpath下创建logback.xml文件:

复制代码
<property name="LOG_DIR" value="D:/test" />
    <property name="LOG_FILE" value="LogFile" />
<!--   RollingFileAppender: 具有轮转日志文件的功能 -->
    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${LOG_DIR}/${LOG_FILE}.log</file>
<!--        基于大小以及时间的轮转策略-->
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <fileNamePattern>${LOG_DIR}/log.%d{yyyy-MM-dd}.%i.log </fileNamePattern>
            <maxFileSize>1000MB</maxFileSize>
            <MaxHistory>60</MaxHistory>
        </rollingPolicy>
        <encoder>
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
        </encoder>
    </appender>

    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
        </encoder>
    </appender>
<!--    自定义-->
    <logger name="com.example.demo" level="debug" />
    <root level="info">
        <appender-ref ref="FILE" />
        <appender-ref ref="STDOUT" />
    </root>
</configuration>

3. 测试代码

复制代码
package com.example.demo;


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

public class Example {

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

    public static void main(String[] args) {

        logger.debug("Example log from {}", Example.class.getSimpleName());
        logger.info("Example log from {}", Example.class.getSimpleName());
        logger.warn("Example log from {}", Example.class.getSimpleName());
        logger.error("Example log from {}", Example.class.getSimpleName());
    }
}

4. 控制台查看

小程序推广(拾光待办)


👍

或者扫描二维码:

👍

相关推荐
fl176831几秒前
基于C#WPF实现的内存加速球清理类似360加速球内存清理
开发语言·c#·wpf
weixin_440730504 分钟前
python+request实现接口-小结
开发语言·python
不能放弃治疗6 分钟前
上下文压缩机制
后端
QQ_21696290969 分钟前
【项目编号:project95315】SpringBoot公共自习室管理系统:座位预约、房间管理、签到核销、公告规则完整实战
java·spring boot·后端
凤山老林14 分钟前
高可用服务容错架构:Spring Boot 集成 Resilience4j 实战指南
spring boot·后端·架构·resilience4j
ZJU_统一阿萨姆28 分钟前
【算子开发】扫描(Scan)与前缀和
开发语言·arm开发·架构·系统架构·硬件架构
-凌凌漆-29 分钟前
【C语言】结构体typedef struct与struct的区别
c语言·开发语言
手握风云-30 分钟前
Spring Cloud:分布式系统的“粘合剂”(五)
后端·spring·spring cloud
早点睡97532 分钟前
Python 上下文管理器深度剖析:从 with 语法糖到 CPython 底层协议
后端·面试
嵌入式阿蔡32 分钟前
面试高频考点 01:volatile / 中断 / 堆栈 八股精讲
java·面试·职场和发展·嵌入式实时数据库