嗨,大家好.在使用Spring的大多数Java项目中,我在web.xml中找到此条目,该条目在服务器启动时执行:
<listener>
<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
</listener>
Run Code Online (Sandbox Code Playgroud)
目的是Log4jConfigListener什么?
在我的遗留项目中,我也可以看到此设置.但是当我深入研究代码时,我没有在这个类或本类内部调用的其他类中找到任何特殊的东西.我相信在上面的代码片段背后肯定有一些好的目的,我错过了它.
在每个将日志放入文件的类中都是条目
private static final Log log = LogFactory.getLog(PoolManagerImpl.class);
log.debug("Number of connection pools to create = ["
+ connection.size() + "]");
Run Code Online (Sandbox Code Playgroud)
即使我注释掉我的web.xml条目,日志记录工作正常.那它的目的是什么?
在Log4jConfigListener初始化Log4j的"子系统"尽快的web应用启动时,而不是"懒洋洋地配置"它只要它是必要的.
在我看来,通过Log4JConfigListener显式初始化log4j的主要优点是它允许你通过使用servlet上下文参数来配置log4j配置文件的位置; 根据应用程序的部署方式,这可能会使某些管理员用户在运行时更改配置,而无需在爆炸的WAR目录中进行挖掘.
请参阅Log4jConfigListener的javadoc ,更重要的是Log4jWebConfigurer,因为它可以完成实际工作.
| 归档时间: |
|
| 查看次数: |
11843 次 |
| 最近记录: |