log4j基于设备MAC / IP进行日志记录

时间:2012-08-04 02:15:00

标签: logging log4j mdc

我有一个Java API库。该库旨在测试设备的功能。稍后这些库将作为Web服务公开,以便非Java程序也可以访问它。我有一个包含bean和依赖库的EAR,这个EAR部署在weblogic服务器中。

同时,我们正在测试来自多个代理计算机的多个设备的这些Web服务以及来自库的所有日志,并在weblogic控制台日志文件中捕获。我在weblogic服务器中配置了log4j。现在我面临的问题是,我无法区分这些日志来自哪些设备/ ip。

根据设备MAC / IP识别日志的更好方法是什么?我用谷歌搜索并获得像log4j这样的输入MDC可用于此应用程序。由于我没有写任何servlet,我不确定是否可以继续使用MDC。

请指导我选择配置每MAC / IP日志的最佳方法。

1 个答案:

答案 0 :(得分:0)

MDC / NDC不依赖于servlet;在javadoc中提到它们的事实只是为了展示一个例子。您可以在任何Java应用程序中使用它。

Web服务看不到MAC / IP,因此您必须将其作为Web服务消息的一部分明确发送。完成后,在处理程序方法中,调用

NDC.push("127.0.0.1"); // example IP obtained from the web service
MDC.put("IP", "127.0.0.1");

并在相应的%x中使用%X{IP}PatternLayout