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

小程序推广(拾光待办)


👍

或者扫描二维码:

👍

相关推荐
YJlio2 小时前
Active Directory 工具学习笔记(10.11):AdRestore 实战脚本与命令速查——从事故回滚到合规留痕
java·笔记·学习
程序喵大人2 小时前
记录va_list重复使用导致的crash
开发语言·c++
2501_930707782 小时前
如何使用C#代码将多张图片整合为一个PDF文档
开发语言·pdf·c#
CryptoPP2 小时前
期货数据获取与可视化全攻略:从API对接至K线图生成
运维·服务器·开发语言·数据结构·金融
222you2 小时前
SpringBeanFactory
java·服务器·前端
C++业余爱好者2 小时前
JVM优化入门指南:JVM新生代、老年代的核心概念与内存分配逻辑
java·开发语言·jvm
韩凡2 小时前
【java中的SSO】
java·开发语言
代码不停2 小时前
JVM基础知识
java·jvm·java-ee
白露与泡影2 小时前
60亿消息表如何分库分表?
java·开发语言·面试