2010-08-23 95 views
3

我们正在为集成测试开发测试平台场景。这个想法将是在隔离网络上的两台机器上运行我们的代码。我们在代码中设置了各种日志消息,并且工作正常。但是,我们希望将来自两台机器的交互记录到通用日志中,以便我们可以跟踪它们之间的交互。log4j转换模式以识别机器

为此,我们可以确定引发日志消息的机器。我的第一个想法是,我们可能能够用转换模式来做到这一点,但在参考文献中无法看到实现这一点的模式。

我想我的问题分两部分。首先这是可能的,其次如果不是的话,社区对我们如何实现这一目标有任何想法。

很多谢谢。

Simon Simon

回答

1

AFAIK对于现有模式是不可能的。我的第一个想法是使用Log4j的NDCMDC。您必须为每个启动的线程在其中一个上下文中显式设置主机名,所以这有点麻烦。

+0

谢谢..是的,我明白你的意思是关于麻烦,但在这个阶段..选项是选项..非常感谢您的答复。 – 2010-08-23 15:01:22

+0

非常感谢您的建议。结果是,我们现在使用JDBC appender登录到我们的测试网络上的“日志记录服务器”,并使用N/MDC标记日志条目,使我们能够在两台机器之间向后和向后追踪流。 再次感谢。 – 2010-08-25 13:33:07

+0

我很高兴能帮上忙! – 2010-08-25 19:17:33

0

考虑对每个已部署的应用程序使用Java property or environment variable设置,并在Log4J实现中对其进行访问。

+0

我的直接想法是我们必须重新访问每个调试语句并注入此值,除非我在您的建议中遗漏了一个细节。谢谢回复。 – 2010-08-23 15:02:03

0

如果你在linux上,你可以使用SyslogAppender和syslog的集中日志聚合功能。当您将header属性设置为true时,您将获得SyslogAppender附带的主机名。