SpringBoot整合log4j
(1)添加依赖
记得移除SpringBoot中默认的日志框架logback
需要指定log4j的版本号,否则在应用启动时,slf4j找不到具体的日志实现。关于各种日志和slf4j的关系,可以参考这篇文章Spring Boot(十)Logback和Log4j2集成与日志发展史
<!--log4j依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-log4j</artifactId>
<version>1.3.8.RELEASE</version>
</dependency>
(2)在resources下新增log4j.properties
关于配置的详细解释,可以参考这篇文章最详细的Log4J使用教程
#log4j.rootLogger=[level],appendername1,appendername2....
# level 输出DEBUG级别及以上的所有日志 优先级 off>fatal>error>warn>info>debug>all
# appendername 日志输出目的地 stdout,D,E
log4j.rootLogger=DEBUG,stdout,D,E
#---------------------------------------------------------------------------------------------
#向控制台输出所有信息
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
#输出样式为自由样式
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
# %-d 时间左对齐
# %p 优先级 OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL
# %l 日志发生的地方,类-方法-行数
# %m 输出代码中指定的消息
# %n 换行
log4j.appender.stdout.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [ %p ] [ %l ] - %m%n
#---------------------------------------------------------------------------------------------
#DEBUG级别的日志保存在每日的日志文件中
log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
log4j.appender.D.File = D://mydataLog/DEBUG/debug-
log4j.appender.D.DatePattern=yyyy-MM-d'.log'
#则每日的日志文件名称为D://mydataLog/DEBUG/debug-日期.log
#第二天才能看到以第一天命名的日志文件
# true表示追加,false表示覆盖
log4j.appender.D.Append = true
# 只输出#DEBUG级别的日志
log4j.appender.D.Threshold = DEBUG
log4j.appender.D.layout = org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %p ] [ %l ] - %m%n
#---------------------------------------------------------------------------------------------
#ERROR级别的日志保存在每日的日志文件中
log4j.appender.E = org.apache.log4j.DailyRollingFileAppender
log4j.appender.E.File =D://mydataLog/ERROR/error-
log4j.appender.E.DatePattern=yyyy-MM-d'.log'
log4j.appender.E.Append = true
log4j.appender.E.Threshold = ERROR
log4j.appender.E.layout = org.apache.log4j.PatternLayout
log4j.appender.E.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %p ] [ %l ] - %m%n
(3)在java类中添加如下代码即可
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
//使用指定的类abc(可以是当前类)初始化日志对象,方便在日志输出的时候,
//可以打印出日志信息所属的类。
private static final Logger logger= LoggerFactory.getLogger(abc.class);
//在某个方法中
logger.debug("这是debug信息!");
//控制台会输出信息,以及在指定地方会形成日志文件。在以日期名称命名日志文件的时候,
//只有到第二天,才可以看到以第一天的日期命名的日志文件。
//可以手动将计算机的日期调后一天,就可以看到前一天的拥有完整日期名称的日志文件
至此,SpringBoot整合log4j已经结束了,不过由于log4j这个日志框架不适应时代,越来越多的项目开始使用log4j2。
log4j2不是log4j的版本更新或是升级版,而是彻头彻尾的提升。