log4j初步理解/运用





我做过这个实验:一个简单的环境,配置一个最简单的log4j.properties



可以在控制台正常的打出: [QC] INFO [main] Runnerr | This is a test message 

再者,把log4j.properties改名,log4j将不会识别到配置文件(因为没有进行单独配置,又没有默认的log4j.properties的文件)。

(md,这博客上图片太麻烦了,不贴图了。)

一个解释: 首先,log4j比较简单,组件也就三个: Logger, Appender, Layout . Logger是记录器,也就是输出log的东西, Appender决定输出什么样的Log, Layout决定布局。 如上采用log4j.properties的大致是这个意思: 无论如何,只要你使用了log4j,就必然有一个跟记录器(rootLogger)。引用一段话:

程序员可以定义多个Logger组件,每个Logger组件都有唯一的名字,logger组件之间通过名字来表明Logger组件之间的隶属关系。最高层次的Logger组件是:org.apache.log4j.Logger类中。使用此类中的静态方法:getRootLogger()来得到它。

Logger具有继承的关系,且是根据名字来辨认继承关系的(如a是a.b的爸爸, a.b是a.b.c的爸爸)。再者,不管一个logger的爸爸是谁,rootLogger总是他的祖先。 在上面的例子中,我们直接给参数Runerr.class来创建的Logger,配置文件中也没有定义它的其他爸爸,所以直接就是rootLogger的孩子,就会继承它的东西(lever,输出方式等)。

我自己的情况是这样的:在一个半截子的产品上作开发,满篇的logger,满满的配置文件。 这样的情况,我想在某个html文件中输出某个包里特定的log,怎么办呢?

由于我这个产品,在那个包里所有的logger都是来自他们的父类A,所以答案就是把A所在的包定义为一个Logger(在log4j.properties中):  log4j.logger.com.xxx(A所在的包)=INFO。随后在java代码中专门帮它写配置文件,这样就不会影响到其他logger,自己的目标也达到了,可参考: http://liuna718-163-com.iteye.com/blog/1900151

暂时写这么多,给自己看的,别人看不大懂


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值