我自己在网上搜索了很多资料,发现没有一个能顺利解决的。最终我自己搞出来了,发现好多人发布的解决办法都是一半,不是全部,也就是问题排查不全面,这里详细的说下和排除办法。
先声明下:IDE用EC或者MYEC都可以,我没有用IDEA。框架是SSM的MAVEN项目。自己搭建框架的时候发现的问题。
第一步,修改log4j.properties目录
将log4j.properties文件存放到resourse根目录下,如图:
第二步,检查web.xml文件
找到web.xml中的log4jConfigLocation,将下面代码覆盖下:
<!-- 日志记录 -->
<context-param>
<!-- 日志配置文件路径 -->
<param-name>log4jConfigLocation</param-name>
<param-value>/WEB-INF/classes/log4j.properties</param-value>
<!-- <param-value>classpath*:log4j.properties</param-value> -->
</context-param>
<context-param>
<!-- 日志页面的刷新间隔 -->
<param-name>log4jRefreshInterval</param-name>
<param-value>6000</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
</listener>
大家可以看到我注释掉了classpath*的这一行。原因是tomcat找不到classpath,所以要指定。这一步还是很关键的。
第三步,检查自己的java Build Path
右键项目----》java Build Path ---》点击Source
如图操作:
点击add folder...
勾选项目下resources目录,点击OK
检查看是否出现了该目录:
个人理解就是,其实是在编译的时候指定了一个资源目录,告诉tomcat让它在这里找。
再次尝试启动就OK了
有的同学pom中引入了jackson,可能会报错,下一篇文章会讲怎么解决。