当前位置: 移动技术网 > IT编程>开发语言>Java > 在Spring Boot中如何使用log4j记录日志

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

2019年07月22日  | 移动技术网IT编程  | 我要评论

前言

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

总结

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

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网