spring中logback的使用,简单到爆

本文介绍如何使用Logback进行日志配置,包括导入依赖、编辑logback.xml,并实现控制台及文件的日志输出。通过实例展示了日志级别设置、文件滚动策略等高级配置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.导入依赖(只需要只一个包就行了)


2.编辑logback.xml,放在resource下,和spring_mvc.xml一个位置

    -----------------------------------------------分割线------------------------------------------------------------

<?xml version="1.0" encoding="UTF-8"?>
<configuration>

    <!-- ch.qos.logback.core.ConsoleAppender 控制台输出 -->
    <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>[%-5level] %d{HH:mm:ss.SSS} [%thread] %logger{36} - %msg%n
            </pattern>
        </encoder>
    </appender>

    <!-- ch.qos.logback.core.rolling.RollingFileAppender 文件日志输出 -->
    <appender name="file"
              class="ch.qos.logback.core.rolling.RollingFileAppender">
        <Encoding>UTF-8</Encoding>
        <File>C:/Users/Administrator/Desktop/logs/test.log</File>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <FileNamePattern>C:/Users/Administrator/Desktop/logs/test-%d{yyyy-MM-dd}.log
            </FileNamePattern>
            <MaxHistory>10</MaxHistory>
            <TimeBasedFileNamingAndTriggeringPolicy
                    class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <MaxFileSize>5MB</MaxFileSize>
            </TimeBasedFileNamingAndTriggeringPolicy>
        </rollingPolicy>
        <layout class="ch.qos.logback.classic.PatternLayout">
            <pattern>[%-5level] %d{HH:mm:ss.SSS} [%thread] %logger{36} - %msg%n
            </pattern>
        </layout>
    </appender>

    <!-- 日志级别 -->
    <root>
        <!-- 定义了ERRORINFO级别的日志,分别在FILE文件和控制台输出 -->
        <level value="error" />
        <level value="info" />
        <appender-ref ref="file" />
        <appender-ref ref="console" />
    </root>

</configuration>


ok!

不得不说,别log4j好用太多, 配置简单, 还可以自动创建文件

### Spring Boot 中 Logback 的集成与配置 #### 1. 添加依赖 在 Maven 或 Gradle 构建工具中引入必要的依赖项。对于大多数 Spring Boot 项目,默认情况下已经包含了 Logback 和 SLF4J 的依赖,因此通常不需要额外添加。 Maven 示例: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-logging</artifactId> </dependency> ``` Gradle 示例: ```groovy implementation 'org.springframework.boot:spring-boot-starter-logging' ``` 此依赖会自动引入 Logback 和其他相关库[^4]。 --- #### 2. 创建 `logback-spring.xml` 配置文件 推荐使用 `logback-spring.xml` 而不是普通的 `logback.xml` 文件,因为前者能够更好地利用 Spring Boot 提供的功能(如属性注入和 Profile 支持)。将该文件放置于项目的 `src/main/resources` 目录下。 以下是典型的 `logback-spring.xml` 配置示例: ```xml <?xml version="1.0" encoding="UTF-8"?> <configuration> <!-- 定义日志路径 --> <property name="LOG_PATH" value="${logging.path:/logs}"/> <!-- 控制台输出 --> <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n</pattern> </encoder> </appender> <!-- 文件输出 --> <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>${LOG_PATH}/application.log</file> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <fileNamePattern>${LOG_PATH}/application-%d{yyyy-MM-dd}.%i.log</fileNamePattern> <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> <maxFileSize>10MB</maxFileSize> </timeBasedFileNamingAndTriggeringPolicy> </rollingPolicy> <encoder> <pattern>%date %level [%thread] %logger{10} [%file:%line] %msg%n</pattern> </encoder> </appender> <!-- 设置根日志级别 --> <root level="info"> <appender-ref ref="CONSOLE"/> <appender-ref ref="FILE"/> </root> <!-- 根据环境设置不同的日志级别 --> <springProfile name="dev"> <root level="debug"/> </springProfile> <springProfile name="prod"> <root level="warn"/> </springProfile> </configuration> ``` 在此配置中: - `${}` 占位符用于读取 Spring Boot 的应用属性。 - `<springProfile>` 元素可以根据激活的 Profile 自动调整日志级别或其他参数[^2]。 --- #### 3. 配置 HTTP 请求日志记录 (可选) 如果希望记录所有的 HTTP 请求细节,可以通过引入 `logback-access-spring-boot-starter` 来实现。 Maven 示例: ```xml <dependency> <groupId>net.logstash.logback</groupId> <artifactId>logstash-logback-encoder</artifactId> </dependency> ``` 随后,在 `application.properties` 或 `application.yml` 中启用访问日志功能并指定目标文件位置: ```properties server.tomcat.accesslog.enabled=true server.tomcat.accesslog.pattern=%h %l %u %t "%r" %s %b server.tomcat.accesslog.directory=logs server.tomcat.accesslog.prefix=access_log server.tomcat.accesslog.suffix=.log ``` 完成以上操作后,启动应用时将会自动生成 HTTP 访问日志文件[^3]。 --- #### 4. 测试日志功能 编写测试代码验证日志是否正常工作: ```java import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class ExampleService { private static final Logger logger = LoggerFactory.getLogger(ExampleService.class); public void performTask() { logger.debug("This is a debug message."); logger.info("This is an info message."); logger.warn("This is a warning message."); logger.error("This is an error message."); } } ``` 运行程序后,控制台和日志文件应显示相应的消息内容。 --- ### 注意事项 - 如果仅需简单配置而无需复杂定制,则可以直接通过 `application.properties` 修改部分常用选项,例如日志目录或全局日志级别。 - 对于生产环境中频繁写入大量数据的应用场景,建议优化磁盘 I/O 并考虑分布式存储方案以提高效率。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值