Springboot中整合log4j

由于在Springboot中本身有自带一个spring-boot-starter-logging 日志输出包,所以在应用log4J时会导致日志冲突的情况。如下:
在这里插入图片描述

当然,网上有的朋友说不推荐使用log4j 了,但是在旧系统迁移到Springboot下之后,总不可能把原来的代码用了log4j的全部改掉一遍吧,这不太现实。因此我们有了Springboot下引用 log4j的需求。言归正传,我们来看看如何解决:

1. 首先,你得找到POM.xml中排除掉Logging

在这里插入图片描述

2. 然后加上log4j

在这里插入图片描述

3.接下来就是创建一个log4j.properties文件

在这里插入图片描述

log4j.properties:
*### 设置
log4j.rootLogger =DEBUG,stdout,D,E

输出信息到控制抬

log4j.appender.stdout = org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target = System.out
log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern = [%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%n

出DEBUG 级别以上的日志到=E://logs/error.log

log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
log4j.appender.D.File = E:/logs/log.log
log4j.appender.D.Append = true
log4j.appender.D.Threshold = DEBUG
log4j.appender.D.layout = org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n

输出ERROR 级别以上的日志到=E://logs/error.log

log4j.appender.E = org.apache.log4j.DailyRollingFileAppender
log4j.appender.E.File =E:/logs/error.log
log4j.appender.E.Append = true
log4j.appender.E.Threshold = ERROR
log4j.appender.E.layout = org.apache.log4j.PatternLayout
log4j.appender.E.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n*

4.最后我们来看看程序中的调用方式:

在这里插入图片描述

有的朋友会疑问为什么我这里用的 是slf4j ,我对slf4解释一下:SLF4J,是简单日志门面(Simple Logging Facade for Java)的缩写,它不是具体的日志解决方案,它只服务于各种各样的日志系统。按照官方的说法,SLF4J是一个用于日志系统的简单Facade,允许最终用户在部署其应用时使用其所希望的日志System,所以这只是为了扩展,其实就是个接口而已,不影响咱们使用log4j 。

最后运行起来看看效果:
在这里插入图片描述

这是我调用一个getUser请求,参数 i=1 返回的结果
我的getUser方法这样做的,注解返回是个json。

在这里插入图片描述

至此, Springboot中引用Log4j 就完成啦 !

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在Spring Boot 2.1.5使用Log4j,需要进行以下步骤: 1. 在Maven或Gradle的构建文件添加Log4j依赖项: ``` <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-slf4j-impl</artifactId> <version>2.11.2</version> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-api</artifactId> <version>2.11.2</version> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-core</artifactId> <version>2.11.2</version> </dependency> ``` 2. 在application.properties文件添加以下配置: ``` logging.level.root=INFO logging.level.com.example=DEBUG logging.config=classpath:log4j2.xml ``` 这里的logging.config属性指定了Log4j的配置文件,在本例log4j2.xml。 3. 创建log4j2.xml文件并将其放置在classpath下。以下是一个示例配置文件: ``` <?xml version="1.0" encoding="UTF-8"?> <Configuration status="WARN"> <Appenders> <Console name="Console" target="SYSTEM_OUT"> <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/> </Console> </Appenders> <Loggers> <Root level="INFO"> <AppenderRef ref="Console"/> </Root> <Logger name="com.example" level="DEBUG"/> </Loggers> </Configuration> ``` 此配置文件定义了一个名为Console的输出器和两个记录器,一个是根记录器,另一个是com.example包的记录器。 4. 在代码使用Log4j输出日志。例如: ``` import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; public class Example { private static final Logger logger = LogManager.getLogger(Example.class); public void doSomething() { logger.debug("Debug message"); logger.info("Info message"); logger.warn("Warn message"); logger.error("Error message"); logger.fatal("Fatal message"); } } ``` 这里的log4j2.xml配置文件将打印日志到控制台,并将级别为DEBUG的日志记录到com.example包的记录器。如果要记录到文件,可以添加FileAppender并将其添加到记录器
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值