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

小程序推广(拾光待办)


👍

或者扫描二维码:

👍

相关推荐
by组态4 分钟前
Ricon组态系统通信配置指南
前端·后端·物联网
wuyk5555 分钟前
18.Kruskal 算法:用最短的边连成一张网
开发语言·算法·图论
Evand J6 分钟前
【MATLAB例程,图像降噪7】高斯加权滑动窗口滤波,用于图像降噪,带质量评价,附代码下载链接
开发语言·图像处理·matlab·滑动窗口·滤波·降噪·图像滤波
还是奇怪7 分钟前
OpenAI GPT-5.6 构建指南拆解:创业公司如何用模型选择与 Responses API 降低 Agent 成本
java·数据库·人工智能·gpt
可涵不会debug8 分钟前
LangChain 文本分割器详解:字符分割、Token 分割、硬约束递归分割实战
java·前端·数据库
sbjdhjd12 分钟前
ThinkPHP 5.0.10 缓存写入型 RCE 复盘:从手动搭建、换行绕过到源码单步验证 | 05
java·后端·安全·spring·网络安全·数据挖掘·php
LEE13 分钟前
Agent 的控制权,为什么正在回到模型手里?
前端·后端
沃夫上校13 分钟前
跨域这件事,其实浏览器在替你挡刀
前端·后端·nginx
用户2986985301415 分钟前
Python 将 Word 文档转换为图片的实践指南
后端·python·api
十年一梦惊觉醒15 分钟前
快手视频发布助手,全自动视频发布带货工具
开发语言·前端·javascript