log4j中输入信息的级别有debug,info,warn,error,fatal 5个级别,分别的对应的级别是越来越低,级别越高其输出的信息就越详细。因此,debug的输出信息最为详细,通过将日志输出记录为debug时,可以看到详细的日志信息,可以有助于调试。但是,如果系统过于庞大,就会造成启动部署速度变慢。总而言之,在开发的过程中,设置为debug模式,可以有助于程序的调试。
进过测试,启动同一个工程各个模式的启动时间和日志打印情况如下所示,debug模式可以输出标记为debug、info、warn、error、fatal的日志。
日志级别 | 启动工程实践 | 日志打印级别 | 日志信息 |
all | 27490ms | ***** | debug info warn error fatal |
debug | 25226ms | ***** | debuginfo warn error fatal |
info | 25706ms | **** | info warn error fatal |
warn | 27034ms | *** | warn error fatal |
error | 27353ms | ** | error fatal |
fatal | 38351ms | * | fatal |
off | 24914ms |
log4j.rootLogger=debug,console
#debug,console
#write log to file
log4j.appender.dailyFile=org.apache.log4j.DailyRollingFileAppender
log4j.appender.dailyFile.File=log/yfb.log
log4j.appender.dailyFile.layout=org.apache.log4j.PatternLayout
log4j.appender.dailyFile.layout.ConversionPattern=%d - %c [%t] %-5p %c %x %l - %m%n
#write log to console
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%d - %l - %m%n
#write log to epay_access.log
log4j.appender.accessLogFile=org.apache.log4j.DailyRollingFileAppender
log4j.appender.accessLogFile.File=log/epay_access.log
log4j.appender.accessLogFile.layout=org.apache.log4j.PatternLayout
log4j.appender.accessLogFile.layout.ConversionPattern=%m {%t}%n
#write log to charge_refund.log
log4j.appender.chargeRefundLogFile=org.apache.log4j.RollingFileAppender
log4j.appender.chargeRefundLogFile.File=log/charge_refund.log
log4j.appender.chargeRefundLogFile.MaxFileSize=1GB
log4j.appender.chargeRefundLogFile.layout=org.apache.log4j.PatternLayout
log4j.appender.chargeRefundLogFile.layout.ConversionPattern=%d - %l - %m%n
log4j.logger.com.netease.wyb.service.buriedpoint=INFO
log4j.logger.org.directwebremoting=ERROR
log4j.logger.org.springframework=ERROR
log4j.logger.org.apache.struts2=ERROR
log4j.logger.freemarker=ERROR
log4j.logger.org.apache.commons=ERROR
log4j.logger.com.opensymphony=ERROR
log4j.logger.com.ibatis=ERROR
log4j.logger.org.logicalcobwebs.proxool=ERROR
log4j.logger.java.sql.Statement=ERROR
log4j.logger.java.sql.PreparedStatement=ERROR
log4j.logger.java.sql.ResultSet=ERROR
log4j.logger.com.danga.MemCached=WARN
log4j.logger.com.netease.epay.AccessLog=INFO,accessLogFile
log4j.additivity.com.netease.epay.AccessLog=false
log4j.logger.com.netease.epay.ChargeRefundLog=INFO,chargeRefundLogFile
在使用log4j提供的jar包进行日志文件的输出,一般步骤则如下:
1、导入所有需的commongs-logging类;
2、在自己的类中定义一个org.apache.commons.logging.Log类的私有静态类成员;
3、使用org.apache.commons.logging.Log类的成员方法输出日志信息;
例如:
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
public class test{
private final Log log = LogFactory.getLog(getClass());
public void mymethod(){
if (log.isDebugEnabled())
{log.debug("111");}
if (log.isInfoEnabled())
{log.info("222");}
if (log.isWarnEnabled())
{log.warn("333");}
if (log.isErrorEnabled())
{log.error("444");}
if (log.isFatalEnabled())
{log.fatal("555")}
}
}