同一个tomcat中起了两个web应用,这两个应用都是用log4j进行日志打印,一份打到控制台,一份按天分割打到其他目录中去,但是两个项目存放日志的位置不一样。
现在遇到的问题有两点:
1.catalina.out中可以看到tomcat和应用打印的日志,但是tomcat按日期分割的日志中没有应用打印的日志,只有tomcat自己的日志。
2.应用的日志并没有按配置文件打印到各自的目录中去,全部打印到同一个文件中了。
关于第一点:
1.“tomcat默认使用Java.util.logging记录日志,默认只记录tomcat的日志,不记录应用的日志”(http://blog.youkuaiyun.com/fishrui/article/details/6228508)
2.“在 UNIX 系统下运行 Tomcat 时,控制台输出经常会重定向到 catalina.out 的文件中。”(http://wiki.jikexueyuan.com/project/tomcat/logging.html)
所以在linux里 catalina.out实际上是有tomcat和web应用两者一起写入,但是tomcat在分割日志的时候,只把自己的日志分割出来了,web应用重定向进去的没管。所以导致了总的catalina有应用的日志,分割的文件里没有应用的日志。
关于第二点:
“各个应用可以使用不同的日志框架,详情参见类加载器。java.util.logging 则是例外。如果日志库直接或间接地用到了这一 API,那么 Web 应用就能共享使用它的元素,因为该 API 是由系统类加载器所加载的。”(http://wiki.jikexueyuan.com/project/tomcat/logging.html)
还没找到解决办法。
有错误欢迎指出。