About Logging

[size=large]Why[/size]
在很久很久以前,我曾经问过自己为什么写程序需要记Log呢,只要写的代码完成相应的功能不就Ok了么,
后来逐渐的发现好多系统都有一个log的模块,大到像Windows和Linux这样的操作系统的log,小到Mysql这样的数据库的log,
当我们发现出现了问题我们第一个反应就是去查看其log.所以说Log是查看问题的一个非常有效的途径.
当然通过log我们还可以分析用户的行为.
在C代码的我们可以通过printf来进行输出,在Java里我们可以通过System.out.println()来进行输出,但是有一个问题就是如果通过这个标准输出,既不好控制其是控制台输出还是文件输出,又很难集中控制其输出样式,所以一个功能完备的log系统是很必要的拉.

[size=large]What[/size]
今天我写的是关于Java程序构建Log系统的一些研究.使用的第三方组件为Commons Logging和Log4j
系统和这两个组件之间的依赖关系如下图所示:

[img]http://dl.iteye.com/upload/attachment/202059/71a9d5de-1448-3c13-b2ab-fc8153bba5f6.jpg[/img]
也许有些同学没有搞清楚Apache的Commons Logging和Log4J之间的关系,
Commons Logging是一个通用日志框架,其本身提供了一个非常简单的日志功能的实现,但是其强大之处在于可以根据你自己的需求更换具体的日志实现方式,一般情况下我们是使用Log4j的.所以这使得你的代码和具体的日志实现方式进行了解耦.

Commons Logging有两个抽象的实体一个是Log就是用来记日志的,一个是LogFactory是用来创建Log的工厂类.它还包括了一些专业Log工具的包装类以方便你使用那些专业的日志工具进行记日志.
如果你没有显式的声明所使用的Log实现的话,它会去classpath中查看是否有log4j,如果有则使用log4j作为其log的实现,并通过Log4j的包装(wrapper)类进行使用.如果没有继续其他的选择,最后都没有的话就是使用其自身的一个很简单的实现拉.


[size=large]How[/size]
明白上面的思想之后,那我们应该怎么实施呢.

[img]http://dl.iteye.com/upload/attachment/202061/170ce934-d1b0-3459-9b82-af55b375ac81.jpg[/img]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值