对于由我的Micronaut服务器发出的任何4xx或5xx响应,我想记录响应状态代码和其所针对的端点。过滤器似乎是一个很好的地方来实现此功能,但我似乎无法弄清楚如何插入到onError处理中。
例如,这个过滤器:
只记录成功响应的日志,而不记录4xx或5xx响应的日志。 我该如何使其连接到onError处理?
例如,这个过滤器:
@Filter("/**")
class RequestLoggerFilter: OncePerRequestHttpServerFilter() {
companion object {
private val log = LogManager.getLogger(RequestLoggerFilter::class.java)
}
override fun doFilterOnce(request: HttpRequest<*>, chain: ServerFilterChain): Publisher<MutableHttpResponse<*>>? {
return Publishers.then(chain.proceed(request), ResponseLogger(request))
}
class ResponseLogger(private val request: HttpRequest<*>): Consumer<MutableHttpResponse<*>> {
override fun accept(response: MutableHttpResponse<*>) {
log.info("Status: ${response.status.code} Endpoint: ${request.path}")
}
}
}
只记录成功响应的日志,而不记录4xx或5xx响应的日志。 我该如何使其连接到onError处理?
@Error
注解吗?(https://docs.micronaut.io/2.0.1/guide/index.html#errorHandling) - Jeff Scott Brown