欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

在Spring Boot中如何使用log4j记录日志

程序员文章站 2024-03-07 23:48:15
前言 spring boot在所有内部日志中使用commons logging,但是默认配置也提供了对常用日志的支持,如:java util logging,log4j,...

前言

spring boot在所有内部日志中使用commons logging,但是默认配置也提供了对常用日志的支持,如:java util logging,log4j, log4j2和logback。每种logger都可以通过配置使用控制台或者文件输出日志内容。本文主要介绍了在spring boot中如何使用log4j记录日志,感兴趣的来一起学习学习。

引入log4j依赖

在创建spring boot工程时,我们引入了spring-boot-starter,其中包含了spring-boot-starter-logging,该依赖内容就是
spring boot默认的日志框架logback,所以我们在引入log4j之前,需要先排除该包的依赖,再引入log4j的依赖,就像下面这样:

<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>
</dependency>

配置log4j.properties

在引入了log4j依赖之后,只需要在src/main/resources目录下加入log4j.properties配置文件,就可以开始对应用的日志进行配置使用。

控制台输出

通过如下配置,设定root日志的输出级别为info,appender为控制台输出stdout

# log4j配置
log4j.rootcategory=info, stdout
# 控制台输出
 log4j.appender.stdout=org.apache.log4j.consoleappender 
 log4j.appender.stdout.layout=org.apache.log4j.patternlayout 
 log4j.appender.stdout.layout.conversionpattern=%d{yyyy-mm-dd hh:mm:ss,sss} %5p %c{1}:%l - %m%n

输出到文件

在开发环境,我们只是输出到控制台没有问题,但是到了生产或测试环境,或许持久化日志内容,方便追溯问题原因。
可以通过添加如下的appender内容,按天输出到不同的文件中去,同时还需要为log4j.rootcategory添加名为file的appender,
这样root日志就可以输出到logs/all.log文件中了。

#
log4j.rootcategory=info, stdout, file
# root日志输出
log4j.appender.file=org.apache.log4j.dailyrollingfileappender 
log4j.appender.file.file=logs/all.log 
log4j.appender.file.datepattern='.'yyyy-mm-dd 
log4j.appender.file.layout=org.apache.log4j.patternlayout 
log4j.appender.file.layout.conversionpattern=%d{yyyy-mm-dd hh:mm:ss,sss} %5p %c{1}:%l - %m%n

分类输出

1.可以按不同package进行输出。通过定义输出到logs/my.log的appender,并对com.didispace包下的日志级别设定
为debug级别、appender设置为输出到logs/my.log的名为didifile的appender。

# com.juzi包下的日志配置
log4j.category.com.juzi=debug, didifile
# com.didispace下的日志输出
log4j.appender.didifile=org.apache.log4j.dailyrollingfileappender 
log4j.appender.didifile.file=logs/my.log 
log4j.appender.didifile.datepattern='.'yyyy-mm-dd 
log4j.appender.didifile.layout=org.apache.log4j.patternlayout 
log4j.appender.didifile.layout.conversionpattern=%d{yyyy-mm-dd hh:mm:ss,sss} %5p %c{1}:%l ---- %m%n

可以对不同级别进行分类,比如对error级别输出到特定的日志文件中,具体配置可以如下。

og4j.logger.error=errorfile 
# error日志输出
log4j.appender.errorfile=org.apache.log4j.dailyrollingfileappender 
log4j.appender.errorfile.file=logs/error.log 
log4j.appender.errorfile.datepattern='.'yyyy-mm-dd 
log4j.appender.errorfile.threshold = error 
log4j.appender.errorfile.layout=org.apache.log4j.patternlayout 
log4j.appender.errorfile.layout.conversionpattern=%d{yyyy-mm-dd hh:mm:ss,sss} %5p %c{1}:%l - %m%n

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。