commons-logging

commons-logging中无法寻找log4j

馋奶兔 提交于 2019-12-16 15:44:03
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 也许大家看到这个题目的时候,会想,commons-logging对log4j做了很好的支持,为什么会找不到呢! 但是我想告诉大家的事,今天由于我对Tomcat下lib的理解不深,就出现了一个这样让人费解的现象: 前提: 1. classPath下配置了log4j.properties文件 操作: 1. org.apache.commons.logging.LogFactory.getLog(key)获取的Log 2. 通过Log.getName(),发现是 org.apache.commons.logging.impl. Jdk14Logger 于是,我在网上查找了一些资料,得到了一致的观点(来源: http://javacrazyer.iteye.com/blog/1135493 ): (1).common-logging首先在CLASSPATH中查找commons-logging.properties文件。这个属性文件至少定义org.apache.commons.logging.Log属性,它的值应该是上述任意Log接口实现的完整限定名称。如果找到 org.apache.commons.logging.Log属相,则使用该属相对应的日志组件。结束发现过程。 (2).如果上面的步骤失败(文件不存在或属相不存在

java日志,需要知道的几件事

核能气质少年 提交于 2019-12-02 00:31:27
java日志,需要知道的几件事 如果对于commons-loging 、log4j 、slf4j 、LogBack 等都已经非常清楚了,可以忽略本文。几次解决日志冲突问题时对这几个概念的简单总结,希望对这块基础没有理解透的同学能有所帮助,当然如果对这块有更深刻理解的同学,也贡献出自己的知识和见解。 一、 概念 Commons-logging : apache最早提供的日志的门面接口。避免和具体的日志方案直接耦合。类似于JDBC 的api 接口,具体的的JDBC driver 实现由各数据库提供商实现。通过统一接口解耦,不过其内部也实现了一些简单日志方案。 Log4j : 经典的一种日志解决方案。内部把日志系统抽象封装成Logger 、appender 、pattern 等实现。我们可以通过配置文件轻松的实现日志系统的管理和多样化配置。 Slf4j : 全称为Simple Logging Facade for JAVA:java简单日志门面。 是对不同日志框架提供的一个门面封装。可以在部署的时候不修改任何配置即可接入一种日志实现方案。和commons-loging 应该有一样的初衷。个人感觉设从计上更好一些,没有commons 那么多潜规则。同时有两个额外特点: 1. 能支持多个参数,并通过{} 占位符进行替换,避免老写logger.isXXXEnabled 这种无奈的判断