Log4j记录日志
很熟悉常见,开发人员常用的一个日志记录插件
引入log4j依赖
引入spring-boot-starter,其中包括spring-boot-starter-log4j。
<!-- Spring Boot web依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- Spring Boot Log4j依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-log4j</artifactId>
<version>1.3.8.RELEASE</version>
</dependency>
配置log4j.properties
在src/main/resources目录下加入log4j.properties配置文件.
控制台输出
通过如下配置,设定root日志的输出级别为INFO,appender为控制台输出e
# LOG4J配置
log4j.rootCategory=INFO, e
# 控制台输出
log4j.appender.e=org.apache.log4j.ConsoleAppender
log4j.appender.e.layout=org.apache.log4j.PatternLayout
log4j.appender.e.layout.ConversionPattern=[%p]%d{yyyy-MM-dd HH:mm:ss,SSSS}%n[%m]%n
输出到文件
在开发环境,我们只是输出到控制台没有问题,但是到了生产或测试环境,或许持久化日志内容,方便追溯问题原因。可以通过添加如下的appender内容,按天输出到不同的文件中去,同时还需要为log4j.rootCategory添加名为file的appender,这样root日志就可以输出到logs/err.log文件中了。
# LOG4J配置
log4j.rootCategory=INFO, e
# 控制台输出
log4j.appender.e = org.apache.log4j.RollingFileAppender
log4j.appender.e.maxFileSize = 100KB
log4j.appender.e.maxBackupIndex = 10
log4j.appender.e.ImmediateFlush = true
log4j.appender.e.threshold = error
log4j.appender.e.layout = org.apache.log4j.PatternLayout
log4j.appender.e.layout.ConversionPattern = [%p]%d{yyyy-MM-dd HH:mm:ss,SSSS}%n[%m]%n
log4j.appender.e.file = ${user.dir}/logs/err.log
分类输出
日志量较多的时候,查找问题会非常困难,常用的手段就是对日志进行分类.可以对不同级别进行分类,比如对ERROR级别输出到特定的日志文件中.
ERROR
# 控制台输出
log4j.appender.e = org.apache.log4j.RollingFileAppender
log4j.appender.e.maxFileSize = 100KB
log4j.appender.e.maxBackupIndex = 10
log4j.appender.e.ImmediateFlush = true
log4j.appender.e.threshold = error
log4j.appender.e.layout = org.apache.log4j.PatternLayout
log4j.appender.e.layout.ConversionPattern = [%p]%d{yyyy-MM-dd HH:mm:ss,SSSS}%n[%m]%n
log4j.appender.e.file = ${user.dir}/logs/err.log
DEBUG
# 控制台输出
log4j.appender.d = org.apache.log4j.RollingFileAppender
log4j.appender.d.maxFileSize = 100KB
log4j.appender.d.maxBackupIndex = 10
log4j.appender.d.ImmediateFlush = true
log4j.appender.d.threshold = debug
log4j.appender.d.layout = org.apache.log4j.PatternLayout
log4j.appender.d.layout.ConversionPattern = [%p]%d{yyyy-MM-dd HH:mm:ss,SSSS}%n[%m]%n
log4j.appender.d.file = ${user.dir}/logs/debug.log
INFO
# 控制台输出
log4j.appender.i = org.apache.log4j.RollingFileAppender
log4j.appender.i.maxFileSize = 500KB
log4j.appender.i.maxBackupIndex = 10
log4j.appender.i.ImmediateFlush = true
log4j.appender.i.threshold = info
log4j.appender.i.layout = org.apache.log4j.PatternLayout
log4j.appender.i.layout.ConversionPattern = [%p]%d{yyyy-MM-dd HH:mm:ss,SSSS}%n[%m]%n
log4j.appender.i.file = ${user.dir}/logs/info.log
介绍如何在spring boot中引入log4j以及基础用户,详情请参考<strong>Log4j官方网站 [http://logging.apache.org/log4j/1.2/]</strong>
<strong>对应代码分享在 [https://github.com/UpdateCw/SpringBoot]</strong>
网友评论