log4j我想大对这个应该很家伙很了解了,我这里就不多说了,如果大家不知道这个兄弟是干嘛的那你就得去问一下谷哥了,不过度娘应该也能满足你的需求了
费话讲完了,现在开始正题。前来说一下我的需求,最近要对项目当中的一些逻辑功能进行压力测试,要记录这些功能的访问时间与最后处理时间。那么我们想到log4j这货,问题来了,在之前我们都配置了log4j来记录系统的一些日志。换句话说就是我们已经有一个输出的日志到指定的文件日志上了。那现在要怎么配置第二个输出的日志到指定的文件日志上呢?
分析1.测试是在不同的类文件上,就好比说我要测试登录类和套餐类与通话详单类。那么这几个类我怎么告诉log4j,他们几个你要给我盯到起。
分析2.log4j在照顾上面三个类时,当他们做什么动作时log4j记录日志。
好吧,现在来看一下我项目当中的log4j配置,如下代码:
log4j.rootLogger=ERROR, stdout ,logfile log4j.logger.org.apache=WARN log4j.logger.com.opensymphony=WARN log4j.logger.net.sf=ERROR log4j.logger.net.sf.hibernate=ERROR log4j.logger.net.sf.hibernate.SQL=ERROR log4j.logger.org.hibernate=ERROR log4j.logger.org.springframework=ERROR #log4j.logger.org.springframework.beans=ERROR log4j.logger.org.apache.catalina=ERROR log4j.logger.org.apache.commons=ERROR log4j.logger.org.apache.struts2=ERROR log4j.logger.org.apache.velocity=ERROR log4j.logger.freemarker=WARN log4j.logger.com.mchange.v2=DEBUG log4j.logger.org.apache.jasper.compiler.JspRuntimeContext=ERROR #PressureTestForTestClass #登录类 log4j.logger.com.born.wom.action.LoginByPhoneAction=ERROR,pressure #通话详单类 log4j.logger.com.born.wom.action.WomDetailByPhoneAction=ERROR,pressure #套餐类 log4j.logger.com.born.wom.action.WomTPhoneMealAction=ERROR,pressure log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%C:%L) - %m%n log4j.appender.logfile=org.apache.log4j.RollingFileAppender log4j.appender.logfile.File=${catalina.base}/logs/rcms-app.log log4j.appender.logfile.MaxFileSize=128KB # Keep three backup files. log4j.appender.logfile.MaxBackupIndex=3 # Pattern to output: date priority [category] - message log4j.appender.logfile.layout=org.apache.log4j.PatternLayout log4j.appender.logfile.layout.ConversionPattern=[%p] [%t] {%c} - <%m> %n log4j.logger.org.hibernate.type.descriptor.sql.BasicBinder=ERROR log4j.logger.org.hibernate.type=ERROR log4j.logger.org.hibernate.sql=ERROR #Pressure Test log4j.appender.pressure.layout=org.apache.log4j.PatternLayout log4j.appender.pressure=org.apache.log4j.RollingFileAppender log4j.appender.pressure.File=${catalina.base}/pressure/pressure.log log4j.appender.pressure.MaxFileSize=512KB log4j.appender.pressure.layout.ConversionPattern=[WOM]%d{yyyy MM dd HH\:mm\:ss}-%p %t %c - %m%n log4j.appender.pressure.MaxBackupIndex=100
上面代码当中有什么不明白的,只能自己下来看一下资料了,如下:http://www.blogjava.net/kit-soft/archive/2009/08/28/292977.html
切记不能生搬硬套,不明白的大家也可以相互讨论一下。
回到正题,上面代码当中我们中关心两个地方,如下代码:
#Class
#下面的这三句就是告诉log4j要照顾的类,当他发出ERROR动作时记录日志,这里的pressure英文
#的意思是压力的意思,但这里你可以理解为一个别名,就是为了下面让log4j知道是记录那个的日志以
#什么形式去记录。
log4j.logger.com.born.wom.action.LoginByPhoneAction=ERROR,pressure
#通话详单类
log4j.logger.com.born.wom.action.WomDetailByPhoneAction=ERROR,pressure
#套餐类
log4j.logger.com.born.wom.action.WomTPhoneMealAction=ERROR,pressure
#下面的代码就是告诉log4j以什么形式输出,输出到哪里,
#输出文件的大小,超大指定大小后处理方式
#输出日志的格式,最大记录文件数
log4j.appender.pressure.layout=org.apache.log4j.PatternLayout
log4j.appender.pressure=org.apache.log4j.RollingFileAppender
log4j.appender.pressure.File=${catalina.base}/pressure/pressure.log
log4j.appender.pressure.MaxFileSize=512KB
log4j.appender.pressure.layout.ConversionPattern=[WOM]%d{yyyy MM dd HH\:mm\:ss}-%p %t %c - %m%n
log4j.appender.pressure.MaxBackupIndex=100