欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 汽车 > 新车 > springboot集成日志

springboot集成日志

2025/2/10 1:27:17 来源:https://blog.csdn.net/weixin_43183496/article/details/145509300  浏览:    关键词:springboot集成日志

在 Spring Boot 项目中集成日志记录,可以使用常见的日志框架如 Logback 或 Log4j2。

Spring Boot 默认使用的是 Logback,但你也可以根据需求选择其他框架。以下是几种常用的日志集成方法:

1 . 使用spring boot 默认的 Logbake 日志框架

步骤 :
1.1 引入依赖

如果是标准的 Spring Boot 项目,通常不需要额外添加依赖,Logback 已经集成。如果你需要自定义日志框架,可以在
pom.xml 中手动引入依赖

<!-- logback-classic已经包含在spring-boot-starter中 -->
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-logging</artifactId>
</dependency>
1.2 .基本配置

可以在 application.properties 中进行基本的日志配置:


# 控制台日志输出级别
logging.level.root=INFO
logging.level.com.yourpackage=DEBUG  # 定制某个包的日志级别
# 日志文件输出
logging.file.name=logs/spring-boot-app.log
logging.file.path=logs  # 指定日志存储的路径
logging.pattern.console=%d{yyyy-MM-dd HH:mm:ss} - %msg%n  # 控制台日志输出格式
logging.pattern.file=%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n  # 文件日志输出格式
// An highlighted block
var foo = 'bar';
1.3 日志格式调整

日志格式调整 可以通过 Logback 的 logback-spring.xml 文件进行更详细的配置。创建
src/main/resources/logback-spring.xml 文件,内容如下:


<configuration><appender name="console" class="ch.qos.logback.core.ConsoleAppender"><encoder><pattern>%d{yyyy-MM-dd HH:mm:ss} %-5level [%thread] %logger{36} - %msg%n</pattern></encoder></appender><appender name="file" class="ch.qos.logback.core.FileAppender"><file>logs/spring-boot-app.log</file><encoder><pattern>%d{yyyy-MM-dd HH:mm:ss} %-5level [%thread] %logger{36} - %msg%n</pattern></encoder></appender><root level="INFO"><appender-ref ref="console" /><appender-ref ref="file" /></root>
</configuration>

2. 使用 Log4j2 日志框架

2.1 引入依赖

在 pom.xml 中添加 Log4j2 的依赖,并排除默认的 Logback:

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-log4j2</artifactId>
</dependency>
2.1 配置

配置 Log4j2 在 src/main/resources 目录下创建 log4j2-spring.xml 文件,内容如下:


<Configuration status="WARN"><Appenders><Console name="Console" target="SYSTEM_OUT"><PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss} [%t] %-5level %logger{36} - %msg%n"/></Console><File name="File" fileName="logs/spring-boot-app.log"><PatternLayout><pattern>%d{yyyy-MM-dd HH:mm:ss} [%t] %-5level %logger{36} - %msg%n</pattern></PatternLayout></File></Appenders><Loggers><Root level="info"><AppenderRef ref="Console"/><AppenderRef ref="File"/></Root><Logger name="com.yourpackage" level="debug" additivity="false"><AppenderRef ref="Console"/><AppenderRef ref="File"/></Logger></Loggers>
</Configuration>

代码用例

无论你使用 Logback 还是 Log4j2,Spring Boot 都会为你注入 SLF4J 接口。在你的代码中使用
LoggerFactory 来记录日志:


import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;@RestController
public class ExampleController {private static final Logger logger = LoggerFactory.getLogger(ExampleController.class);@GetMapping("/example")public String example() {logger.info("This is an info message");logger.debug("This is a debug message");logger.error("This is an error message");return "Logging example!";}
}

4 .使用lombok.extern.slf4j.Slf4j

@Slf4j 是 Lombok 提供的一个注解,用于简化日志记录的过程。它会自动为类注入一个 org.slf4j.Logger 类型的
log 对象,让你无需手动创建 Logger 实例。@Slf4j 基于 SLF4J(Simple Logging Facade for
Java),这是一个常用的日志框架接口,可以与多种日志实现(如 Logback、Log4j2 等)结合使用。

4.1 .基本使用

在类上加上 @Slf4j 注解,Lombok 会自动为该类生成一个名为 log 的 Logger 实例。


import lombok.extern.slf4j.Slf4j;@Slf4j
public class ExampleService {public void doSomething() {log.info("This is an info message");log.debug("This is a debug message");log.error("This is an error message");}
4.2 . 日志级别

使用 @Slf4j 注解后,你可以在代码中使用 SLF4J 提供的不同级别的日志方法,例如:

  1. log.trace() - 追踪日志,用于非常细节化的日志记录

  2. log.debug() - 调试日志

  3. log.info() - 信息日志

  4. log.warn() - 警告日志

  5. log.error() - 错误日志

4.3. 配合 Spring Boot 和日志配置

在 Spring Boot 项目中,默认使用的是 Logback 日志框架,因此不需要额外配置就可以直接使用 @Slf4j 进行日志记录。

日志级别和格式等配置可以在 application.properties 或 logback-spring.xml 中进行调整。


import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;@Slf4j
@Service
public class UserService {public void createUser(String username) {log.info("Creating user with name: {}", username);try {// 模拟一些业务逻辑log.debug("Processing user creation logic...");// 如果发生错误if (username == null) {throw new IllegalArgumentException("Username cannot be null");}} catch (Exception e) {log.error("Error creating user: {}", username, e);}}
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com