文章目录
- 导入依赖
- 1、去掉slf4j的依赖
- 2、引入log4j的依赖
- 创建log4j.properties
导入依赖
因为springboot的启动依赖会引入SLF4J的日志依赖,因此想要用log4j,就要先把slf4j的依赖去掉,然后再引入log4j的启动依赖。
1、去掉slf4j的依赖
网上有些博客写得有个坑,就是在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>
2、引入log4j的依赖
这个就没什么说的了,直接上依赖代码
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-log4j</artifactId><version>1.3.8.RELEASE</version>
</dependency>
创建log4j.properties
导入依赖之后,需要在资源路径下创建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
搞定!