apache common logging和log4j区别
来源:互联网 发布:域名在微信内禁止访问 编辑:程序博客网 时间:2024/05/22 12:31
Apache common logging是一种log的框架接口,它本身并不实现log记录的功能,而是在运行时动态查找目前存在的日志库,调用相关的日志函数,从而隐藏具体的日志实现
log4j是具体的日志实现,真正负责"写"日志的这个功能
common logging本身不是log,你可以把它看做是一个日志的接口
而log4j就是日志的实现
使用common logging方式实现日志,主要的原因在于可以忽略底层的日志实现,或者说为以后的日志实现库的更换提供透明界面
你可以考虑下,假设从log4j更换为logback,势必要重写所有原本使用log4j的源代码,而使用common logging的情况下,只需要更换jar包,而不需要对源代码做任何改动。
做日志的时候一般是两者一起用,commons-logging工作原理做接口,log4j做实现,应用起来比单独的使用log4j要简单
commons-logging工作原理:
1. 首先在classpath下寻找自己的配置文件commons-logging.properties,如果找到,则使用其中定义的Log实现类
2. 如果找不到commons-logging.properties文件,则在查找是否已定义系统环境变量org.apache.commons.logging.Log,找到则使用其定义的Log实现类
3. 查看classpath中是否有Log4j的包,如果发现,则自动使用Log4j作为日志实现类
4. 使用JDK自身的日志实现类(JDK1.4以后才有日志实现类)
5. 使用commons-logging自己提供的一个简单的日志实现类SimpleLog
(以上顺序不保证完全准确,请参考官方文档)
commons-logging总是能找到一个日志实现类,并且尽可能找到一个"最合适"的日志实现类.
log4j是具体的日志实现,真正负责"写"日志的这个功能
common logging本身不是log,你可以把它看做是一个日志的接口
而log4j就是日志的实现
使用common logging方式实现日志,主要的原因在于可以忽略底层的日志实现,或者说为以后的日志实现库的更换提供透明界面
你可以考虑下,假设从log4j更换为logback,势必要重写所有原本使用log4j的源代码,而使用common logging的情况下,只需要更换jar包,而不需要对源代码做任何改动。
做日志的时候一般是两者一起用,commons-logging工作原理做接口,log4j做实现,应用起来比单独的使用log4j要简单
commons-logging工作原理:
1. 首先在classpath下寻找自己的配置文件commons-logging.properties,如果找到,则使用其中定义的Log实现类
2. 如果找不到commons-logging.properties文件,则在查找是否已定义系统环境变量org.apache.commons.logging.Log,找到则使用其定义的Log实现类
3. 查看classpath中是否有Log4j的包,如果发现,则自动使用Log4j作为日志实现类
4. 使用JDK自身的日志实现类(JDK1.4以后才有日志实现类)
5. 使用commons-logging自己提供的一个简单的日志实现类SimpleLog
(以上顺序不保证完全准确,请参考官方文档)
commons-logging总是能找到一个日志实现类,并且尽可能找到一个"最合适"的日志实现类.
0 0
- apache common logging和log4j区别
- log4j和common-logging的区别
- log4j 和common-logging
- Log4J and Apache common logging
- apache common logging和log4j区别 2016-11-01 21:01 711人阅读 评论(0) 收藏 举报 Apache common logging是一种log的框架接口,
- Java日志框架:SLF4J, Apache Common-Logging, Log4J和Logback
- Java日志框架:SLF4J, Apache Common-Logging, Log4J和Logback
- apache common-logging 和 log4j的相关说明
- Java日志框架:SLF4J, Apache Common-Logging, Log4J和Logback
- 解密Log4j、SLF4J、Common-logging的区别
- apache commons-logging和log4j
- SLF4j 和 common-logging和Log4J
- log4j和common-logging结合使用
- Log4j和common-logging的使用
- Log4j和common-logging的使用
- Log4j和common-logging配置实例教程
- Log4j和common-logging的使用
- common-logging和log4j切换到logback
- 网络编程基础---------陈Hong鑫
- Objective-C 中如何测量代码的效率
- BestCoder Round #89 1001 /hdu 5944/ Fxx and string
- 创建Fragment
- UVA 439 BFS入门
- apache common logging和log4j区别
- Java回顾之一些基础概念
- C语言99乘法表程序
- Fox and Number Game(优先队列)
- Why always OpenCV Error: Assertion failed (elements_read == 1) in unknown function ?
- 三大数据库区别介绍
- 洛谷1007独木桥(脑洞)
- C语言指针笔记
- SpringBatch的核心组件JobLauncher和JobRepository