在SpringBoot中如何使⽤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.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内容,按天输出到不同的⽂件中去,同时还需要为Category添加名为file的appender,这样root⽇志就可以输出到logs/all.log⽂件中了。
#
# 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%log4j2不打印日志
n
分类输出
1.可以按不同package进⾏输出。通过定义输出到logs/my.log的appender,并对com.didispace包下的⽇志级别设定
为DEBUG级别、appender设置为输出到logs/my.log的名为didifile的appender。
# com.juzi包下的⽇志配置
log4j.category.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级别输出到特定的⽇志⽂件中,具体配置可以如下。
=errorfile
# error⽇志输出
file=org.apache.log4j.DailyRollingFileAppender
file.file=logs/error.log
file.DatePattern='.'yyyy-MM-dd
file.Threshold = ERROR
file.layout=org.apache.log4j.PatternLayout
file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} %5p %c{1}:%L - %m%n
总结
以上就是这篇⽂章的全部内容了,希望本⽂的内容对⼤家的学习或者⼯作能带来⼀定的帮助,如果有疑问⼤家可以留⾔交流。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。