« | August 2025 | » | 日 | 一 | 二 | 三 | 四 | 五 | 六 | | | | | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | | | | | | | |
| 公告 |
戒除浮躁,读好书,交益友 |
Blog信息 |
blog名称:邢红瑞的blog 日志总数:523 评论数量:1142 留言数量:0 访问次数:9698857 建立时间:2004年12月20日 |

| |
[java语言]commons-logging结合Log4j的问题续 原创空间, 软件技术
邢红瑞 发表于 2005/8/31 17:28:09 |
偶一直想明白spring如何把commons-logging和log4j和在一起的,看了半天源码,也不明白,问了问linux_china和keith,方才明白。
其实Jakarta Commons Logging (JCL)提供的仅是一个日志接口,允许程序开发人员使用不同的具体日志实现工具,包括Log4J, Avalon LogKit, and JDK 1.4等.
JCL有两个基本的抽象类:Log(基本记录器)和LogFactory(负责创建Log实例)。当commons-logging.jar被加入到CLASSPATH之后,默认的LogFactory是按照下列的步骤去发现并决定那个日志工具将被使用
寻找当前factory中名叫org.apache.commons.logging.Log配置属性的值
寻找系统中属性中名叫org.apache.commons.logging.Log的值
如果应用程序的classpath中有log4j,则使用相关的包装(wrapper)类(Log4JLogger)
如果应用程序运行在jdk1.4的系统中,使用相关的包装类(Jdk14Logger)
使用简易日志包装类(SimpleLog)
原来spring只是做了一个桥,把commons-logging结合Log4j连接在一起.spring使用log4j的进行日志输出,可以使用listeners进行初始化,他可以用于jboss和weblogic,jboss比较特殊,因为他的开发者使用了log4j,而且他的配置文件为log4j.xml,必须修改他的配置才能进行自己的日志输出.web.xml中listeners的配置必须在ContextLoaderListener前面,如果使用ContextLoaderServlet,log4j的配置也必须放在前面.Log4jConfigListener是ServletContextListener的子类,在系统初始化时初始化,他的源码public void contextInitialized(ServletContextEvent event) { Log4jWebConfigurer.initLogging(event.getServletContext()); }Log4jWebConfigurer是个抽象类,负责读取web.xml中log4j的配置例如 <context-param> <param-name>log4jConfigLocation</param-name> <param-value>/WEB-INF/log4j.properties</param-value> </context-param>读到后,他调用 Log4jConfigurer.initLogging(location);Log4jConfigurer也是抽象类,他直接调用org.apache.log4j.PropertyConfigurator或org.apache.log4j.xml.DOMConfigurator进行配置默认的是log4j.properties. |
|
回复:commons-logging结合Log4j的问题续 原创空间, 软件技术
邢红瑞发表评论于2005/9/7 12:39:07 |
|
回复:commons-logging结合Log4j的问题续 原创空间, 软件技术
agile(游客)发表评论于2005/9/1 20:02:47 |
你今天被我贴啦! 嘿嘿玩个游戏吧: 开始游戏的人出一个题目,在自己的blog上写下答案,然后把题目丢给另外五个人,在文末附上这五个人的连结,并且到这些人的留言版上留下:"哈哈!你被贴了。"这五个被tag到的人,在自己的blog注明(并附上连结)是从哪一个blogger那里传来的题目,然后写下答案,再去贴另外五个人。如此继续下去。游戏的题目是:怪癖。写下五个自己的怪癖、奇怪的嗜好、异于常人的习惯。老实交代哦 http://agilejava.blogbus.com/logs/2005/09/1404394.html |
|
» 1 »
|