JAVA项目开发笔记(5)框架的融合部分:Shark和Log4j

 不知大家在同时使用这两个框架的时候有没有发现log4j日志无法输出了或自已写的log4j的配置文件无效,反正我是遇到了这个问题,研究了一阵时间才发现,原来shark的配置文件中已经带有log4j的配置部分了,因此在shark引擎启动后使用了shark对log4j的配置,所以你的log4j配置文件就无效了,在shark引擎的配置中log4j默认级别是info,而且只把日志输出到SharkExecutionFlow.log文件中去并不在控制台输出,所以就会出现上述问题(关于shark的配置文件,请参见我blog中的相关文章),即然找到了问题原因那解决起来就容易了。修改一下shark.conf,设一个自已的日志输出与shark的日志分开。当然你也可以直接改动shark.conf中的这句“log4j.rootLogger=info, SharkExecution ”使之符合你的要求。不过这样就会使你的日志和shark的日志输出到一起,看起来非常的乱,所以还是推荐使用前一种方法。下面是我对shark.conf的修改(只列出我增加的部分):

转载请注明出处(Cooper的专栏    http://blog.youkuaiyun.com/cooper_lyt

 

log4j.appender.SharkAdapter=org.apache.log4j.RollingFileAppender
log4j.appender.SharkAdapter.File=@@/logs/sharkAdapter.log
log4j.appender.SharkAdapter.MaxFileSize=10MB
log4j.appender.SharkAdapter.MaxBackupIndex=2
log4j.appender.SharkAdapter.layout=org.apache.log4j.PatternLayout
log4j.appender.SharkAdapter.layout.ConversionPattern=%d{ISO8601}: [%t], %p, %c: %m%n

 

log4j.logger.SharkAdapterLog=Debug,Console,SharkAdapter

 

在代码中的使用

  1. protected Log log = LogFactory.getLog("SharkAdapterLog")
  2. log.info("Username or password is Error");

注意:getLog的参数同配置文件中的定义是相对映的,如果在配置文件中没有相对的设置那么会按照log4j.rootLogger的设定来处理日志。

 

关于log4j的使用和配置就不多说了,一来很简单,二来网上相关的文章很多(不要告诉我你找不到)。

转载请注明出处(Cooper的专栏    http://blog.youkuaiyun.com/cooper_lyt

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值