在 Wildfly 10 中记录远程 IP 地址

Logging remote ip address in Wildfly 10

如何让wildfly 10记录请求源IP地址?我正在使用默认记录器。我的模式是:

%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p %X{IP} [%c] (%t) %s%e%n

我尝试了一些旧版本 7 文档中的“%a”,但无济于事。 %X{IP} 也不起作用。 (我从 log4j 文档中得到它)

谢谢。

您可以使用 %X{IP} 之类的东西,但您必须在日志语句之前设置 MDC 值,然后再将其清除。大多数日志对此会有一个空条目,因为它们可能没有与之关联的 HTTP 请求。

如果您使用的是支持 MDC 的日志记录框架,则以下内容应该可以在 servlet 中运行。

MDC.put("IP", req.getRemoteAddr());
logger.info("This is a test log message");
MDC.remove("IP");