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. 控制台查看

小程序推广(拾光待办)


👍

或者扫描二维码:

👍

相关推荐
Pluto_CSND1 分钟前
JSONPath解析JSON数据结构
java·数据结构·json
无限进步_2 分钟前
【C语言】用队列实现栈:数据结构转换的巧妙设计
c语言·开发语言·数据结构·c++·链表·visual studio
weixin_579599664 分钟前
编写一个程序,输入两个数字的加减乘除余数(Python版)
开发语言·python
xiaoliuliu123457 分钟前
Tomcat Connectors 1.2.32 源码编译安装教程(含 mod_jk 配置步骤)
java·tomcat
CYTElena11 分钟前
JAVA关于集合的笔记
java·开发语言·笔记
我是唐青枫18 分钟前
深入理解 C#.NET Parallel:并行编程的正确打开方式
开发语言·c#·.net
源码获取_wx:Fegn089519 分钟前
基于springboot + vueOA工程项目管理系统
java·vue.js·spring boot·后端·spring
短剑重铸之日20 分钟前
《Java并发编程研读》第三章:锁机制
java·java并发编程·java锁机制
小哀225 分钟前
2025年总结: 我还在往前走
前端·后端·全栈
RFCEO26 分钟前
用手机写 Python程序解决方案
开发语言·python·智能手机·qpython环境安装