我有一个Java API库。该库旨在测试设备的功能。稍后这些库将作为Web服务公开,以便非Java程序也可以访问它。我有一个包含bean和依赖库的EAR,这个EAR部署在weblogic服务器中。
同时,我们正在测试来自多个代理计算机的多个设备的这些Web服务以及来自库的所有日志,并在weblogic控制台日志文件中捕获。我在weblogic服务器中配置了log4j。现在我面临的问题是,我无法区分这些日志来自哪些设备/ ip。
根据设备MAC / IP识别日志的更好方法是什么?我用谷歌搜索并获得像log4j这样的输入MDC可用于此应用程序。由于我没有写任何servlet,我不确定是否可以继续使用MDC。
请指导我选择配置每MAC / IP日志的最佳方法。
答案 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
。