【发布时间】:2021-07-28 17:29:58
【问题描述】:
我有以下 logback 模式:
<pattern>%clr(%-6id) - %clr(%d{dd/MM/yy HH:mm:ss}) - %clr(%-40.40logger{39}) - %m -%clr(%5p) - [%thread] - %clr(:) %n%wEx</pattern>>
我需要像24.33.87.53这样使用logback处理用户的IP地址,在我的程序编译过程中我可以看到:
o.s.web.servlet.DispatcherServlet - Completed initialization in 6 ms - INFO - [RMI TCP Connection(1)-198.163.6.156] : Completed initialization in 6 ms
在我的模式中,[%thread] 负责 RMI TCP 连接,但是当我像 logger.info("User connected") 这样调用记录器时,我得到的是 http-nio-8000-exec-1
尝试不同的 VPN 连接我意识到这个 RMI TCP 连接可能是我需要的东西。 现在我正在尝试像这样编写自定义 ProcessIpConverter
public class ProcessIpConverter extends ClassicConverter {
@Override
public String convert(final ILoggingEvent event) {
return smth;
}
}
并使用转换规则将其连接到我的模式
<conversionRule conversionWord="remoteIp"
converterClass="com.myPath.ProcessIpConverter" />
我尝试了不同的方法来获取此 IP,但没有找到正确的方法。所以,我正在寻求帮助,我应该如何调用我的 DispatcherServlet 以及如何从中获取这个 RMI TCP 连接。 ProcessIpConverter应该怎么写?
【问题讨论】:
标签: java logging logback converters