日志记录是我们项目开发中必备的,我所参与的项目一直是使用log4j用来记录日志的。尤其用的最多的是按天或按小时生成新日志文件的方式,这个功能很是方便。
近期的几个项目部署的环境是Linux下的Weblogic的10MP1版,开始并没有在意,只是将log4j配置文件中的文件日志由windows的路径调整为linux的路径就生成发布文件了。以前也是这么做的。
发布文件部署后,第一个部署完成生成日志文件,且能正常记录日志。但第二个部署上后日志没有指定的设置生成,而是同样记录在第一个发布文件中设置的日志文件中,且日志的级别参照第一个发布文件的设置。
遇到这样的问题首先想到的是linux下的读写权限,确认后,发现使用的是root用户,这下不是权限问题了。
可又是哪儿的问题呢?
且这个问题在10.3的版本没有遇见,这下郁闷了。
按照log4j的路子进行了一番查找,未见异常。
只有对Weblogic下手了,google上搜索了一番没有发现server与log4j的不兼容。不过一个类加载顺序的问题引起了我的关注。
原文链接如下:http://taojingrui.iteye.com/blog/399609
就是javaeye中好友的文章。
我的每个war中都包含了该项目所需的类库,log4j就是重复出现在其中。于是在各个项目的war中的weblogic.xml中增加了如下语句:
<container-descriptor> <prefer-web-inf-classes>true</prefer-web-inf-classes> </container-descriptor>
重新部署war包。
一切正常了。