Spring 作为一个现代化的 Java 开发框架,提供了很多便利的功能,其中包括灵活而强大的日志记录。本文将介绍如何结合 Spring 和 Logback 配置和使用日志,并通过实际的例子演示日志的记录和输出。
首先,在 pom.xml
中引入 Logback 的依赖
pom.xml
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.4.14</version>
</dependency>
在 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
级别及以上的日志会被输出。
在 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";
}
}
访问下面的请求 URL
http://localhost:8080/index
然后观看控制台的日志
可以看到控制台的输出,发现没有看到 debug
只能看到 info
、warn
和 error
。
此处使用在 properties 文件中使用参数配置调整日志输出级别
application.properties
将日志级别调整为 WARN,重启服务再次访问请求
可以看到控制台的输出,发现没有看到 debug
和 info
只能看到 warn
和 error
。
https://github.com/cheney09/spring-practical-combat/tree/main/15/koala
通过结合 Spring 和 Logback,我们能够轻松配置和使用强大的日志记录功能。Logback 提供了丰富的配置选项和灵活的日志格式,而 Spring 则通过自动加载和集成简化了配置的过程。这样,我们可以更方便地记录和分析应用程序的运行状态,及时发现和解决问题。在实际开发中,充分利用 Spring 和 Logback 的优势将大大提高项目的可维护性和调试效率。