在我的tomcat中,部署了多个webapp,它们相互通信。目前他们都有自己的日志文件。但是当有来自通话的问题时,我必须首先检查我打电话给的应用程序,并检查呼叫中涉及的相应应用程序的日志文件。所以我希望如此,因为所有应用程序都部署在同一个tomcat中并共享一个公共log4j,如果对任何应用程序进行调用,那么所有日志都应该在一个日志文件中,并且无论我的webapps是如何涉及的,所有错误都来自任何webapp在通话期间应该在一个日志文件中。
我不知道如何实现这一目标。所以任何帮助都是值得的。
编辑:
我认为我的问题没有通过用例更新如此更新:
答案 0 :(得分:0)
Log4j的FileAppender不允许从多个应用程序写入同一文件。如果您尝试,则会收到损坏的日志文件。但是,logback可以查看http://logback.qos.ch/manual/appenders.html#prudent
答案 1 :(得分:0)
我建议您保留日志文件,并使用单独的日志收集器服务。然后,您可以使用该服务搜索您想知道的内容。作为额外奖励,您可以获得过滤器和其他漂亮的功能。
LogStash是我听过的好消息。然而,Haven没有时间将它投入使用,但我认为这是应该采取的方向。在front page上有关于它的演示文稿,以及入门材料here。
免责声明:我与他们没有任何关系,我只是认为这是方向性日志分析的目标。
答案 2 :(得分:-1)
如果使用java.util.Logging
而不是log4j,会更容易。
使用Java日志记录的已部署Web应用程序默认使用app server logging.properties。因此,所有Web应用程序都将引用相同的logging.properties文件,并将登录到同一位置。
通常情况下,这被认为是java日志框架的障碍,但你的用例很合适。
你会在网上找到很多关于java.util.logging的例子。