springboot如何使用log4j记录日志

x33g5p2x  于2022-02-07 转载在 Spring  
字(1.7k)|赞(0)|评价(0)|浏览(391)
导入依赖

因为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

搞定!

相关文章