Log4j没有正确配置导致项目没有发布成功

遇到一个奇葩问题,研究一个使用jfinal框架的demo,在全局拦截器控制非法访问时候,想研究一下拦截的具体过程,然后在代码中添加了很多syso想查看不同时期不同变量的内容,但是保存重新发布以后,试图访问一个非法的url,发现在控制台并没有任何相应的输出,然后注释掉拦截器整个代码之后,保存重新发布之后,发现访问非法url,拦截器还是拦截了,并同样转向了登陆界面,于是怀疑哪个地方还有更高一级别的拦截,然后发现了作者自己配置的filter,虽然在config里面并没有添加这个filter,但是为了保险起见,还是将整个filter注释掉了,然而,神奇的是,它还是拦截了,于是删除发布的项目,重启tomcat,甚至重启myeclipse,来来回回n遍,发现还是能够拦截,然后就疯了...搞了半天都没有解决,总觉得哪里有些缓存,这个缓存一直在,或者项目就一直没有发布成功。于是暂且将原因归因于jfinal版本的bug了,不过第二天又发现一个同样的问题,到一个eclipse的项目之后,试图添加自己的路由,发现发布后并不起作用,然后测试了半天发现和昨天状况一样,像是一直有个缓存在,而且无论怎么发布都不影响这个缓存,后来测试的时候,无意中在控制台发现这个:

Log4j没有正确配置导致项目没有发布成功_第1张图片

发现这三个warn跟log4j有关,然后对比以前正常配置过的jfinal项目,发现res目录下少了一个log4j.properties文件,然乎拷过来了,然后再保存发布之后整个项目就正常了,

Log4j没有正确配置导致项目没有发布成功_第2张图片

然后回到昨天那个项目,发现发布的时候也会输出这三个warn,于是新建了一个res文件夹,并将log4j.properties放在该文件夹下,然后配置该文件夹的输出路径:

Log4j没有正确配置导致项目没有发布成功_第3张图片

再重新发布之后就正常了。基本可以猜测是log4j没有正确配置导致项目没有发布成功,可是为什么我删除tomcat目录中的项目之后,修改再修改保存发布,即使发布失败了,也会是404之类的错误页面啊,为什么能够正常拦截?难道真的是有什么还存在吗。。。哎,没有能力去研究jfinal或者是tomcat的源码,只能留下这个疑问了

教训:发布的时候注意控制台打印的信息,注意任何一个warn

你可能感兴趣的:(web)