【Spring实战】15 Logback

Spring 作为一个现代化的 Java 开发框架,提供了很多便利的功能,其中包括灵活而强大的日志记录。本文将介绍如何结合 Spring 和 Logback 配置和使用日志,并通过实际的例子演示日志的记录和输出。

1. 依赖

首先,在 pom.xml 中引入 Logback 的依赖

pom.xml

		<dependency>
			<groupId>ch.qos.logback</groupId>
			<artifactId>logback-classic</artifactId>
			<version>1.4.14</version>
		</dependency>

2. 配置

src/main/resources 目录下创建 logback-spring.xml 文件,Spring 会自动识别并加载该配置文件

logback-spring.xml

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

    <root level="INFO">
        <appender-ref ref="console"/>
    </root>
</configuration>

上述配置定义了一个控制台输出的 Appender,使用了一种简单的日志格式,包含时间戳、线程信息、日志级别、 Logger 名称和日志消息。根 Logger 的日志级别被设置为 INFO,这意味着只有 INFO 级别及以上的日志会被输出。

3. 打印日志

在 IndexController.java 类中,使用 private static final Logger logger = LoggerFactory.getLogger(IndexController.class); 来创建 logger 引用,并且分别打印了 4 种级别的日志(分别是 Debug,Info,Warn,Error)

package com.cheney.koala.controller;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
@RequestMapping("index")
public class IndexController {

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

    @GetMapping
    public String index(Model model) {
        logger.debug("【Debug】- Hello.");
        logger.info("【Info】- Hello.");
        logger.warn("【Warn】- Hello.");
        logger.error("【Error】- Hello.");
        model.addAttribute("msg", "Welcome to Koala System.");
        return "index";
    }
}

4. 启动程序

在这里插入图片描述

5. 验证

访问下面的请求 URL

http://localhost:8080/index

然后观看控制台的日志

在这里插入图片描述

可以看到控制台的输出,发现没有看到 debug 只能看到 infowarnerror

6. 调整日志级别

此处使用在 properties 文件中使用参数配置调整日志输出级别

application.properties

在这里插入图片描述

将日志级别调整为 WARN,重启服务再次访问请求

在这里插入图片描述

可以看到控制台的输出,发现没有看到 debuginfo 只能看到 warnerror

7. 代码详细

https://github.com/cheney09/spring-practical-combat/tree/main/15/koala

在这里插入图片描述

总结

通过结合 Spring 和 Logback,我们能够轻松配置和使用强大的日志记录功能。Logback 提供了丰富的配置选项和灵活的日志格式,而 Spring 则通过自动加载和集成简化了配置的过程。这样,我们可以更方便地记录和分析应用程序的运行状态,及时发现和解决问题。在实际开发中,充分利用 Spring 和 Logback 的优势将大大提高项目的可维护性和调试效率。

  • 25
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Logback是一个灵活的、高效的日志框架,而Spring是一个非常流行的Java框架。将LogbackSpring集成起来,可以更好地记录应用程序的运行日志。 以下是将Logback集成到Spring应用程序中的步骤: 1. 首先,需要在pom.xml文件中添加以下依赖项: ```xml <!-- Logback Classic --> <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId> <version>1.2.3</version> </dependency> ``` 2. 在src/main/resources目录下创建一个名为logback.xml的文件,并将以下内容添加到其中: ```xml <configuration> <property name="LOG_DIR" value="./logs" /> <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> <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>${LOG_DIR}/myapp.log</file> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <fileNamePattern>${LOG_DIR}/myapp.%d{yyyy-MM-dd}.%i.log</fileNamePattern> <maxHistory>30</maxHistory> </rollingPolicy> <encoder> <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern> </encoder> </appender> <logger name="com.example.myapp" level="DEBUG" additivity="false"> <appender-ref ref="STDOUT" /> <appender-ref ref="FILE" /> </logger> <root level="INFO"> <appender-ref ref="STDOUT" /> <appender-ref ref="FILE" /> </root> </configuration> ``` 此处的配置为Logback设置了两个附加器(appender):ConsoleAppender和RollingFileAppender。ConsoleAppender会将日志输出到控制台,而RollingFileAppender会将日志记录到指定的文件中。在配置文件中,需要指定日志文件的路径、日志文件的最大历史记录、日志记录格式等信息。 3. 在Spring应用程序中配置Logback,可以在applicationContext.xml文件中添加以下内容: ```xml <bean id="logbackConfigurer" class="org.springframework.boot.logging.logback.LogbackConfigurer" factory-method="initLogging" /> <bean id="loggingSystem" class="org.springframework.boot.logging.logback.LogbackLoggingSystem" factory-method="initialize"> <constructor-arg index="0" value="classpath:logback.xml" /> </bean> ``` 这里使用了Spring Boot提供的LogbackConfigurer和LogbackLoggingSystem类来配置LogbackLogbackConfigurer的initLogging方法会读取logback.xml配置文件并初始化Logback,而LogbackLoggingSystem的initialize方法则会将Logback集成到Spring Boot的日志系统中。 4. 最后,在应用程序中使用日志记录器(logger)来记录日志。可以使用以下代码: ```java import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class MyClass { private static final Logger logger = LoggerFactory.getLogger(MyClass.class); public void myMethod() { logger.debug("Debug message"); logger.info("Info message"); logger.warn("Warning message"); logger.error("Error message"); } } ``` 这里使用了SLF4J接口来记录日志。SLF4J是一个抽象层,可以为各种不同的日志框架提供统一的接口。在上面的代码中,使用了Logback作为SLF4J的实现。可以根据需要更改日志框架,只需要更改依赖项和配置文件即可。 以上就是将Logback集成到Spring应用程序中的步骤。通过使用Logback记录应用程序的运行日志,可以更好地跟踪和调试应用程序的问题,从而提高应用程序的质量和可靠性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值