2014-03-31 115 views
0

我们使用log4j进行应用程序日志记录,并使用maven进行应用程序打包。 由于我们有3-4个应用程序作为EAR的一部分进行部署,因此EAR的大小很大。 我们正在尝试与'瘦瘦的战争'的方法,但面临与log4j的问题。我们过去使用不同的文件为每个应用程序记录应用程序日志,但是使用Skinny WAR作为log4j的类只被加载一次,只创建一个日志文件并且每个应用程序的日志被追加到同一个日志文件。瘦战争和log4j

我们想到了在每个WAR中打包log4j.jar的着名解决方案,但是之后我们必须移动WAR中需要log4j的每个jar文件。弹簧罐的这基本上会增加EAR尺寸。

有没有其他解决方案来解决这个问题? 任何建议将是一个很大的帮助。

谢谢。

回答

0

看看log4j的1.3/log4j2帮助您解决在init - 谷歌ContextJNDISelector

http://logging.apache.org/log4j/2.x/manual/webapp.html

比较

的logback - JoranConfigurator它正是这么做的,定制的基于上下文的配置

http://logback.qos.ch/manual/configuration.html

+0

我们不能使用上述版本的log4j,因为我们已经集成的少数应用程序依赖于旧版本的lib。,谢谢! – user765635

+0

如果你在加载log4j的时候,基本上只有一个类加载器加载log4j类,如果它在类路径中发现log4j.xml,它只会启动一次,如果你不喜欢,你可以多次启动它 - configureandwatch api想到,也见http://www.certpal.com/blogs/2010/05/how-to-configure-log4j-for-a-web-app/ - 挑战将是保持appenders和处理程序分开内存用于不同的战争,如果你在不同的网络应用中使用相同的类(比如某种框架),可能必须以独特的方式创建类别,而不仅仅是包和类 –