springBoot整合Slf4j+Logbak

本文介绍了如何在SpringBoot项目中整合Slf4j和Logback,详细讲解了配置日志和SLF4J的使用步骤,包括无需额外添加日志依赖、lomback包的引入以及注解方式的使用。

Springboot底层就是使用Slf4j+logback。

spring-boot-starter中就已经引入了,spring-boot-starter-logging,所以在pom.xml文件中无需加入日志的依赖

一:配置日志

#配置日志输出级别
logging.level.com.niucheng.eblog= warn
#配置日志文件输出的路径-项目更目录下的spring/log/spring.log
logging.file.path=/spring/log
#配置日志在控制台输出的格式
logging.pattern.console==%d{yyyy-MM-dd} [%thread] %-5level %logger{50} - %msg%n
#配置日志在输出的文件中的格式
logging.pattern.file=%d{yyyy-MM-dd} === [%thread] === %-5level === %logger{50} ==== %msg%n

二:SLF4J使用

1、引入lomback包,idea需要安装lomback的插件

        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>

 2、注解方式使用slf4j+logback

import lombok.extern.slf4j.Slf4j;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
@Slf4j //引入注解@slf4j,不要写Logger logger = LoggerFactory.getLogger(HelloWorld.class);
@SpringBootTest
class EblogApplicationTests {
    @Test
    void contextLoads() {

        log.trace("这是trance日志。。。。");
        log.debug("这是debug日志。。。。");
        log.info("这是info日志。。。。");
        log.warn("这是warn日志。。。。");
        log.error("这是error日志。。。。");
    }

}

控制台日志输出:

### 如何在 Spring Boot 中集成 Log4J 和 Slf4J 进行日志管理 #### 1. 修改 `pom.xml` 文件以移除默认的日志依赖并添加 Log4j2 依赖 为了确保使用的是 Log4j 而不是默认的 Logback,需要修改 Maven 的 `pom.xml` 文件来排除默认的日志实现,并加入对于 Log4j2 及其桥接器的支持。 ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <!-- 排除默认的日志库 --> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-logging</artifactId> </exclusion> </exclusions> </dependency> <!-- 添加 Log4j2 作为新的日志实现 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-log4j2</artifactId> </dependency> ``` #### 2. 创建或更新 Log4j2 配置文件 将名为 `log4j2.xml` 或者更推荐使用的 `log4j2-spring.xml` 放置于项目的 resources 目录下。即使不手动指定路径,Spring Boot 应用程序也能够自动识别这些位置下的配置文件[^3]。 #### 3. 启用全局异步日志记录提升性能 通过创建一个名为 `log4j2.component.properties` 的属性文件,在其中设置如下参数可以启用全局异步模式: ```properties Log4jContextSelector=org.apache.logging.log4j.core.async.AsyncLoggerContextSelector ``` 这一步骤有助于显著改善应用程序写入日志时的表现效率[^4]。 #### 4. 使用 SLF4J API 编码 尽管底层实现了 Log4j2 来处理实际的日志输出工作,但在编码过程中应当继续沿用 SLF4J API 定义接口来进行日志操作。这样做不仅保持了灵活性,而且使得未来更换其他具体日志框架变得更加容易。 ```java import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class ExampleService { private static final Logger logger = LoggerFactory.getLogger(ExampleService.class); public void performAction() { logger.info("Executing action..."); try { // Some business logic here... } catch (Exception e) { logger.error("An error occurred while executing the action", e); } } } ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值