因为springboot的启动依赖会引入SLF4J的日志依赖,因此想要用log4j,就要先把slf4j的依赖去掉,然后再引入log4j的启动依赖。
网上有些博客写得有个坑,就是在web的启动依赖spring-boot-starter-web下去掉spring-boot-starter-logging,结果运行的时候,控制台上打印的是一对红色的开头为SLF4J的东东,根本没用到log4j。这是因为在spring-boot-starter里仍然引用了slf4j,因此需要在spring-boot-starter下去掉logging依赖。
那么有些小伙伴会觉得奇怪的地方来了,项目里面根本没有引入spring-boot-starter依赖,只有spring-boot-starter-web,要怎么搞?没有就引入啊。
如果说引入了会不会造成啥冲突的,不会!因为就算你不引入项目也会用到,springboot的定时器包就引用了spring-boot-starter。
也就是说在spring-boot-starter下去一定要去掉logging依赖,spring-boot-starter-web下不去掉也行。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
这个就没什么说的了,直接上依赖代码
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-log4j</artifactId>
<version>1.3.8.RELEASE</version>
</dependency>
导入依赖之后,需要在资源路径下创建log4j.properties文件
然后在log4j.properties文件里面就可以配置日志级别啥的了。以下是我个人的一些配置:
# Set root category priority to INFO and its only appender to CONSOLE.
#log4j.rootCategory=INFO, CONSOLE debug info warn error fatal
log4j.rootLogger=debug,CONSOLE
# CONSOLE is set to be a ConsoleAppender using a PatternLayout.
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.layout.ConversionPattern=%d{ISO8601} %-6r [%15.15t] %-5p %30.30c %x - %m\n
log4j.appender.CONSOLE.Target=System.out
log4j.appender.CONSOLE.Encoding=gbk
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
搞定!
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : https://blog.csdn.net/qq_43842093/article/details/122802823
内容来源于网络,如有侵权,请联系作者删除!