日志代理框架
常用的一些日志工具
一般打日志,有许多种选择,像slf4j, log4j, logback, jul(java.util.logging.Logger), SimpleLog(System.err), commons-logging等。这些大致可以分为两类,代理类和工具类,其中代理类为slf4j和commons-logging,其它的为工具类。其中代理类不负责具体的日志打印,实际打印的工作由工具类来完成,代理类负责日志框架的设计
commons-logging
可配置LogFactory的实现类,来做logger的选择,其中实现类的查找顺序为(具体可见方法LogFactory.getFactory):
- 环境变量中的org.apache.commons.logging.LogFactory值
- META-INF/services/org.apache.commons.logging.LogFactory文件中的第一行(例如jcl-over-slf4j中就是用的此种方式桥接的)
- commons-logging.properties配置文件中的org.apache.commons.logging.LogFactory的值
默认实现为org.apache.commons.logging.impl.LogFactoryImpl,其查找logger的顺序为(具体可见方法LogFactoryImpl.discoverLogImplementation)
- 查找用户自定义的log实现类,查找顺序为commons-logging.properties中的org.apache.commons.logging.Log,commons-logging.properties中的org.apache