当前位置:  开发笔记 > 编程语言 > 正文

使用tomcat 6在Spring webapp中设置Commons Logging/Log4j的问题

如何解决《使用tomcat6在Springwebapp中设置CommonsLogging/Log4j的问题》经验,为你挑选了2个好方法。

我在tomcat 6下部署的apring webapp中的日志设置有问题.

webapp使用commons-logging api,应该使用运行时log4j.日志文件已创建但仍为空 - 不会发生任何日志条目.

设置如下:

WEB-INF/web.xml文件:

 
    log4jConfigLocation
    /WEB-INF/log4j.xml
  
  
    org.springframework.web.util.Log4jConfigListener
  

WEB-INF /班/ commons-logging.properties:

org.apache.commons.logging.Log=org.apache.commons.logging.impl.Log4JLogger

WEB-INF/log4j.xml文件:



  
    ...
  
  
    
    ...
  

  
    
  

  
    
    
    
  

创建了文件logs/my.log,但没有显示日志.这是tomcat控制台上的信息日志,但没有配置布局模式.

commons-logging-1.1.1.jar和log4j-1.2.14.jar包含在WEB-INF/lib中.知道这里有什么问题吗?



1> Spencer Korm..:

网上有许多记录在案的实例,警告人们使用公共记录.这么多,SLF4J正在获得很多人气.

考虑到您对使用Tomcat和Log4j不感兴趣,您应该直接在应用程序中使用Log4j.特别是如果您将来不可能切换日志框架.它将降低应用程序的复杂性,并消除您使用commons-logging时遇到的任何类加载器问题.

这应该是一个相对容易的搜索和替换在您的文本中,因为commons-logging和log4j都使用类似的调用结构进行日志记录方法.



2> Mojo..:

请特别注意,您没有将log4j.jar放在Tomcat commons/lib目录中.如果根类加载器加载log4j库,当您的webapps也尝试使用log4j时,您将遇到冲突和初始化问题.

如果您需要使用log4j进行常见的Tomcat日志记录,则需要注意您的webapps也不会尝试加载log4j.如果服务器上有多个Web应用程序,那么您需要遵守规则,即每个webapp的日志初始化都不会影响其他Web应用程序的初始化.每个webapp都需要使用唯一的Logger ID,这可以使用唯一的包名称来完成.

当您拥有所有想要进行日志记录的共享库(例如Hibernate或Spring)时,在Tomcat中使用具有多个Web应用程序的公共log4j会导致严重的冲突.尝试初始化log4j的下一个webapp可能会关闭前一个的logger.这可能是一团糟.

推荐阅读
ar_wen2402851455
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有