如何使用 LogBack 记录客户端 IP 地址
How to log client IP Address using LogBack
我正在使用 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地址。
i need to log the client ip address.
您可以使用 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;
}
}
我正在使用 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地址。
i need to log the client ip address.
您可以使用 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;
}
}