common-logging
2015-05-30 17:15
288 查看
1.引入与作用
java日志工具类有多种,如log4j,jdk自带的日志工具等,如何使用统一的接口操作这些日志工具、并且在这些日志工具之间自由切换呢?
这个时候就会用到common-logging了。
2.查找顺序
当引入了common-logging之后,它会自动查找使用的log工具,用户不需要任何配置。查找的顺序如下:
(1)寻找配置文件中是否为org.apache.common.logging.Log配置的值
(2)是否有log4j
(3)是否有JDK Logger
(4)使用Common-logging自带的SimpleLog
也就是说按以上顺序查找,如果找到就使用。这也就说明了,如果使用log4j,就不用写properties配置文件了,因为common-logging会自己查找并使用
如果需要使用配置文件,那么可以使用如下几个类:
-org.apache.commons.logging.impl.Jdk14Logger:使用JDK1.4。
-org.apache.commons.logging.impl.Log4JLogger:使用Log4J。
-org.apache.commons.logging.impl.Log4JCategoryLog:使用Log4J,该实现已被弃用,推荐使用Log4JLogger
-org.apache.commons.logging.impl.LogKitLogger:使用 avalon-Logkit。
-org.apache.commons.logging.impl.SimpleLog:common-logging自带日志实现类。它实现了Log接口,把日志消息都输出到系统错误流System.err 中。
-org.apache.commons.logging.impl.NoOpLog:common-logging自带日志实现类。它实现了Log接口。 其输出日志的方法中不进行任何操作。
配置common-logging.properties文件可以使用如下写法:
3.使用示例
(1)单独使用log4j
(2)common-logging结合log4j
2.查找顺序
当引入了
java日志工具类有多种,如log4j,jdk自带的日志工具等,如何使用统一的接口操作这些日志工具、并且在这些日志工具之间自由切换呢?
这个时候就会用到common-logging了。
2.查找顺序
当引入了common-logging之后,它会自动查找使用的log工具,用户不需要任何配置。查找的顺序如下:
(1)寻找配置文件中是否为org.apache.common.logging.Log配置的值
(2)是否有log4j
(3)是否有JDK Logger
(4)使用Common-logging自带的SimpleLog
也就是说按以上顺序查找,如果找到就使用。这也就说明了,如果使用log4j,就不用写properties配置文件了,因为common-logging会自己查找并使用
如果需要使用配置文件,那么可以使用如下几个类:
-org.apache.commons.logging.impl.Jdk14Logger:使用JDK1.4。
-org.apache.commons.logging.impl.Log4JLogger:使用Log4J。
-org.apache.commons.logging.impl.Log4JCategoryLog:使用Log4J,该实现已被弃用,推荐使用Log4JLogger
-org.apache.commons.logging.impl.LogKitLogger:使用 avalon-Logkit。
-org.apache.commons.logging.impl.SimpleLog:common-logging自带日志实现类。它实现了Log接口,把日志消息都输出到系统错误流System.err 中。
-org.apache.commons.logging.impl.NoOpLog:common-logging自带日志实现类。它实现了Log接口。 其输出日志的方法中不进行任何操作。
配置common-logging.properties文件可以使用如下写法:
org.apache.commons.logging.Log=org.apache.commons.logging.impl.Log4JLogger
3.使用示例
(1)单独使用log4j
import org.apache.log4j.Logger; public class Log4jTest { private static Logger log = Logger.getLogger(Log4jTest.class); public void log() { log.debug("Debug info."); log.info("Info info"); log.warn("Warn info"); log.error("Error info"); log.fatal("Fatal info"); } public static void main(String[] args) { Log4jTest test = new Log4jTest(); test.log(); } }
(2)common-logging结合log4j
import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; public class JCLTest { private static Log log = LogFactory.getLog(JCLTest.class); public void log(){ log.debug("Debug info."); log.info("Info info"); log.warn("Warn info"); log.error("Error info"); log.fatal("Fatal info"); } public static void main(String[] args) { JCLTest test = new JCLTest(); test.log(); }
2.查找顺序
当引入了
相关文章推荐
- 详说 Block Formatting Contexts (块级格式化上下文)
- Linux 的 Crontab 命令运用(转)
- Java的反射
- MySQL数据库索引的设计原则
- 回调函数
- 遍历图像像素点的方法
- 第一章 笔记
- visual studio dll生成与调用方法
- 你真的懂iOS的autorelease吗?
- Emacs 快速指南 - 原生中文手册
- MySQL数据库索引的设计原则
- Mysql存储引擎比较
- FFmpeg资源一览
- Mat与Iplimage之间的相互转换
- 选择主键:自然键还是代理键?
- 一些项目——Rightmost Digit
- Java 线程同步
- Linux修改/etc/sysconfig/i18n后桌面无法显示
- 微信公众号辅助工具汇总 推广加粉统统有
- jquery-qrcode在线生成二维码