统一的日志调用接口 SLF4j
2012-02-23 14:20
141 查看
Simple Logging Facade for Java (SLF4J) http://www.slf4j.org/ 简单统一日志门面(好贴切)
SLF4J是为各种loging APIs提供一个简单统一的接口,从而使得最终用户能够在部署的时候配置自己希望的loging APIs实现。
简单说,你的项目用的log4j,我的用的java的logging,那么我们整合就会存在问题
而如果都使用SLF4J,那么就是面向抽象接口编程,具体用什么方式实现日志,都可以采用包含不同的jar包来实现
SLF4J 和已有日志实现的绑定是在编译时静态执行的,具体绑定工作是通过一个jar包实现的,使用时只要把相应的jar包(只有一个)放到类路径上即可。
比如,使用log4j:
slf4j+log4j组合使用模式:
1. slf4j-api-1.5.11.jar
2. slf4j-log4j12-1.5.11.jar
3. log4j-1.2.15.jar
4. log4j.properties(也可以是 log4j.xml)
其实slf4j原理很简单,他只提供一个核心slf4j api(就是slf4j-api.jar包),这个包只有日志的接口,并没有实现,所以如果要使用就得再给它提供一个实现了些接口的日志包,比如:log4j,common logging,jdk log日志实现包等,但是这些日志实现又不能通过接口直接调用,实现上他们根本就和slf4j-api不一致,因此slf4j又增加了一层来转换各日志实现包的使用.
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
private static Logger logger = LoggerFactory.getLogger(RheaDhcpClient.class);
SLF4J是为各种loging APIs提供一个简单统一的接口,从而使得最终用户能够在部署的时候配置自己希望的loging APIs实现。
简单说,你的项目用的log4j,我的用的java的logging,那么我们整合就会存在问题
而如果都使用SLF4J,那么就是面向抽象接口编程,具体用什么方式实现日志,都可以采用包含不同的jar包来实现
SLF4J 和已有日志实现的绑定是在编译时静态执行的,具体绑定工作是通过一个jar包实现的,使用时只要把相应的jar包(只有一个)放到类路径上即可。
比如,使用log4j:
slf4j+log4j组合使用模式:
1. slf4j-api-1.5.11.jar
2. slf4j-log4j12-1.5.11.jar
3. log4j-1.2.15.jar
4. log4j.properties(也可以是 log4j.xml)
其实slf4j原理很简单,他只提供一个核心slf4j api(就是slf4j-api.jar包),这个包只有日志的接口,并没有实现,所以如果要使用就得再给它提供一个实现了些接口的日志包,比如:log4j,common logging,jdk log日志实现包等,但是这些日志实现又不能通过接口直接调用,实现上他们根本就和slf4j-api不一致,因此slf4j又增加了一层来转换各日志实现包的使用.
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
private static Logger logger = LoggerFactory.getLogger(RheaDhcpClient.class);
相关文章推荐
- slf4j 日志接口 统一
- 最近工作需要写了一个JS类 页面统一调用API接口数据并计算显示
- 以前写的一段aop,远程接口调用的日志。
- Openmeetings4.0.0二次开发日志(三)使用webservice调用OM接口(1)
- 记录程序日志(日志实现和统一接口)
- 微信:微信扫码支付、调用统一下单接口、网站支付 + springmvc
- 计划统一播放接口(thinkvd开发日志)
- Spring AOP在函数接口调用性能分析及其日志处理方面的应用
- 调用接口并且判断是否写日志(用一个参数来控制)
- 清华大学统一认证接口与PHP的调用
- 微信支付》统一下单接口调用
- 微信:微信扫码支付、调用统一下单接口、网站支付 + springmvc
- 统一接口调用的总结
- 面试题:应用中很多jar包,比如spring、mybatis、redis等等,各自用的日志系统各异,怎么用slf4j统一输出?
- 统一接口调用
- Java日志框架slf4j API介绍及异常接口实现分析
- 利用Castle IOC实现远程调用的接口统一(上)
- logger日志接口SLF4J
- 使用slf4j统一日志输出到log4j
- 微信统一下单接口调用