使用log4j如何打印输出到日志文件

Posted 戴眼镜的程序员

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用log4j如何打印输出到日志文件相关的知识,希望对你有一定的参考价值。


maven工程web项目使用log4j如何打印输出日志
1.首先准备工作:搭建工程什么的就不啰嗦了,相信大家都会的。直奔主题啦!
导入log4j相关的maven坐标
<!-- log4j日志相关坐标 --> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.7.21</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>1.7.21</version> </dependency>

2.编写log4j配置文件log4j.properties


#设置优先级别、以及输出源 stdout输出到控制台,D,F,E保存到文件log4j.rootLogger = DEBUG,stdout,D,F,E# 把日志信息输出到控制台log4j.appender.stdout = org.apache.log4j.ConsoleAppender #添加到控制台 log4j.appender.stdout.Target = System.out #方式为输出 log4j.appender.stdout.Threshold = DEBUG #优先级为debuglog4j.appender.stdout.layout = org.apache.log4j.PatternLayout #信息布局方式为自定义log4j.appender.stdout.layout.ConversionPattern = %d - %m %5p (%c:%L) %n #自定义布局方式# 把日志信息输出到文件debug.loglog4j.appender.D = org.apache.log4j.DailyRollingFileAppenderlog4j.appender.D.File = ../logs/**项目名**/debug.loglog4j.appender.D.Append = truelog4j.appender.D.Threshold = DEBUG log4j.appender.D.layout = org.apache.log4j.PatternLayoutlog4j.appender.D.layout.ConversionPattern = %d - %m %5p (%c:%L) %n# 把日志信息输出到文件info.loglog4j.appender.F = org.apache.log4j.DailyRollingFileAppenderlog4j.appender.F.File = ../logs/**项目名**/info.loglog4j.appender.F.Append = truelog4j.appender.F.Threshold = INFO log4j.appender.F.layout = org.apache.log4j.PatternLayoutlog4j.appender.F.layout.ConversionPattern = %d - %m (%c:%L)%n# 把日志信息输出到文件error.log log4j.appender.E = org.apache.log4j.DailyRollingFileAppenderlog4j.appender.E.File =../logs/**项目名**/error.log log4j.appender.E.Append = truelog4j.appender.E.Threshold = ERROR log4j.appender.E.layout = org.apache.log4j.PatternLayoutlog4j.appender.E.layout.ConversionPattern =%d - %m (%c:%L) %n
#ibatis logger config log4j.logger.com.ibatis=info log4j.logger.com.ibatis.common.jdbc.SimpleDataSource=debug log4j.logger.com.ibatis.common.jdbc.ScriptRunner=info log4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate=info log4j.logger.java.sql.Connection=info log4j.logger.java.sql.Statement=info log4j.logger.java.sql.PreparedStatement=info

说明:

(1)日志文件的输出路径可以自定义。

(2)log4j.properties是log4j默认加载的文件名,一般不需要修改。

(3)日志输出优先级:从高到低依次为error,warn,info,debug,低级别的可以输出高级别的日志,如debug可以输出任何优先级的日志,但是info只能输出info,warn,error级别的日志。

(4)stdout,D,F,E这两个有点类似于变量名,可以自定义名称,可以用这两个东西进行控制台或者文件的输出。

3.测试:

编写测试类

@SpringBootTestclass ApplicationTests { Logger log = Logger.getLogger(ApplicationTests.class); @Test public void testOne() { // 记录debug级别的信息 log.debug(">>This is debug message"); // 记录info级别的信息 log.info(">>This is info message"); // 记录error级别的信息 log.error(">>This is error message");  }}

运行结果

注意看日志文件的输出路径,看配置文件配置的路径:如 ../logs/**项目名**/debug.log

找到位置看是不是输出日志文件了。


debug.log

使用log4j如何打印输出到日志文件

info.log

error.log

注意:看日志内容,是不是证实了(低级别的可以输出高级别的日志,如debug可以输出任何优先级的日志)


以上是关于使用log4j如何打印输出到日志文件的主要内容,如果未能解决你的问题,请参考以下文章

如何将web应用项目中log4j的日志只打印到独立的文件,不打印在Tomcat的catalina.out?

如何将Hibernate生成的SQL语句打印到日志文件

java log打印的日志会在控制台输出吗

log4j程序遇到错误打印日志到文件中

Log4j使用教程

Log4j 用法