2012-09-26 28 views
0

我正在使用嵌入式Tomcat(版本7.028)。我的嵌入式Tomcat服务器是一个可配置的服务器,可以为其添加一个或多个网络应用程序。针对嵌入式Tomcat和网络应用的不同Log4j

我想将嵌入式Tomcat中的错误/信息消息记录在一个日志文件中,并为部署在嵌入式Tomcat上的所有应用程序维护不同的日志文件。我在嵌入式Tomcat的类路径中放置了一个log4j.properties文件。它正在被正确读取,我可以记录Tomcat的信息和错误信息。我还将嵌入式Tomcat中的所有记录器声明为非静态记录器。

我已经把log4j.xml放在webapp的WEB-INF/classes位置来覆盖嵌入式Tomcat的log4j.properties(参考Link)。但是log4j.xml没有启动。来自Tomcat的log4j设置仅被使用。

请帮我解决这个问题。有没有可以添加到XML或属性文件的配置?

+0

我发现只有一个类加载器被用于嵌入式tomcat中的所有webapps。因为只有一个类加载器,嵌入式tomcat服务器首先初始化的log4j正在工作,而其他的Web应用程序不会被覆盖。 – haritejareddy

+0

我尝试添加新的WebappLoader,如下所示: 'Context context = tomcat.addWebapp(“/ myApp”,“/ opt/test/myApp”); WebappLoader xcomLoader = new WebappLoader(context.getParentClassLoader()); addJarFileUrls(context,new File(jarFilesDirectory)); context.setLoader(myLoader); myLoader.start();' 但这没有奏效。在调用启动方法时,我收到错误。难道我做错了什么?请指向正确的方向。 – haritejareddy

回答

0

请尝试在每个Web应用程序(我的意思是在WEB-INF/lib中)添加log4j jar,我认为这可能会解决您的问题。