如何使用LogBack记录客户端IP地址



我使用的是micronaut 1.2.5,我需要记录客户端IP地址。

这是我的logback.xml

<configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<withJansi>true</withJansi>
<!-- encoders are assigned the type
ch.qos.logback.classic.encoder.PatternLayoutEncoder by default -->
<encoder>
<pattern>%cyan(%d{HH:mm:ss.SSS}) %gray([%thread]) %highlight(%-5level) %magenta(%logger{36}) - %msg%n</pattern>
</encoder>
</appender>
<root level="info">
<appender-ref ref="STDOUT" />
</root>

我需要记录客户端的ip地址。

我看到最新的文档已经有了这个功能。

我需要记录客户端的ip地址。

您可以使用HttpClientAddressResolver来解析客户端IP地址。

import io.micronaut.http.HttpRequest;
import io.micronaut.http.annotation.Controller;
import io.micronaut.http.annotation.Get;
import io.micronaut.http.HttpStatus;
import io.micronaut.http.server.util.HttpClientAddressResolver;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@Controller("/demo")
public class DemoController {
private static final Logger LOG = LoggerFactory.getLogger(DemoController.class);
private final HttpClientAddressResolver addressResolver;
public DemoController(HttpClientAddressResolver addressResolver) {
this.addressResolver = addressResolver;
}
@Get("/")
public HttpStatus index(HttpRequest request) {
LOG.debug("The client ip address is {}.", addressResolver.resolve(request));
return HttpStatus.OK;
}
}

最新更新