在项目中使用log4j时出现了一个奇怪的现象,即从服务器上可以看到log4j生成了log文件,但是尝试通过浏览器访问服务器上的log时,总是报404错误,
我们的log文件生成规则是当天的log文件为error.log,每天的归档log文件为error.logyyyyMMdd
由于我们的log配置放在项目根路径下的log目录,是可以通过http访问到,但现象是error.log可以访问,归档文件都无法访问,
开始我怀疑是后缀名的问题,就将归档文件名的后缀名修改为log,但依然无法访问.
最后,在运维同事的帮助下,终于发现了问题.
我们的log4j配置中有如下
log4j.appender.error.datePattern=yyyyMMdd
原来我们这句配置文件最后有两个空格,导致服务器上生成的归档文件名最后有两个看不见的空格.在服务器上根本看不出来.而通过http访问时,就会因为文件名不对而报404错误了.
在访问时的地址后加上%20%20就可以访问到了.
事实证明我的配置文件是从网上copy下来的,才会导致这个问题...