在Spring的项目中配置Log4j

1.在classpath的根目录下面不放置log4j.properties
在用junit本地测试的时候会提示:

log4j:WARN No appenders could be found for logger (org.springframework.beans.factory.access.SingletonBeanFactoryLocator).
log4j:WARN Please initialize the log4j system properly.

然后我们是看不到spring加载bean的配置信息的。
在classpath路径下加入:log4j.properties,则能够显示bean的加载信息

2. 在web应用中为Spring配置log4j
Spring 的做法是使用一个Servlet Listener,在Web Container启动时把ROOT的绝对路径写到系统变量里,这样log4j的配置文件里就可以用${myAppfuse.root}来表示刚刚设进去的系统变量:log4j.appender.logfile.File=${myAppfuse.root}/logs/mylog.log
在Web.xml中配置语句如下:

复制代码
 1  <!--如果不设,默认为web.root,但最好设置,以免项目间冲突 -->
 2 <context-param>     
 3  <param-name>webAppRootKey</param-name>      
 4  <param-value>myappfuse.root</param-value> 
 5 </context-param>
 6 <context-param>   
 7  <param-name>log4jConfigLocation</param-name>   
 8  <param-value>/WEB-INF/classes/log4j.properties</param-value>
 9 </context-param>
10 <listener>   
11  <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
12 </listener> 
13 <!--这里配置了一个listener,也可以配置servlet -->
14 <servlet>
15   <servlet-name>log4j</servlet-name>
16   <servlet-class>
17    org.springframework.web.util.Log4jConfigServlet
18   </servlet-class>
19   <load-on-startup>1</load-on-startup>
20  </servlet>
复制代码

配置好了以后我们就可以在当前应用的logs目录下找到日志记录文件:mylog.log
属性log4jConfigLocation的值建议还是设置为:/WEB-INF/classes/log4j.properties,这样我们在不启动web应用的时候,做一些测试这能够正确地记录日志信息。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值