0

我们如何在 logback.xml 中集成访问日志?为此有一个类AccessLogHandler,但它没有实现MiddlewareHandler,所以我们不能在handlers.yml中注入它。有没有一种简单的方法可以像 spring 为 tomcat 提供的那样在 access.log 中记录传入的 HTTP 请求?

4

1 回答 1

0

可以将 AccessLogHandler 放入 handler.yml 以通过动态提供的端点更改日志记录级别。你是对的,它不是一个中间件处理程序,而是一个端点处理程序。

如果您将 light-4j 用作单体应用程序,则可以使用 AuditHandler 启用审核日志。默认情况下,它将像 Tomcat 一样将所有请求记录到 audit.log 中。logback.xml 中的配置可以在https://github.com/networknt/light-example-4j/blob/release/rest/openapi/petstore/src/main/resources/logback.xml#L44找到例子。

如果你使用 light-4j 作为微服务平台,那么上面的方法是行不通的。以下三个选项可以单独使用或组合使用。

  1. 将日志重定向到 ElasticSearch 并通过 kibana 访问它们。如果你使用 docker-compose/swarm,你可以像这样在 docker-compose.yml 中配置它

https://github.com/networknt/light-config-test/blob/master/light-oauth2/test-cloud/docker-compose.yml#L25

如果您使用的是 Kubernetes 或 Openshift,请查阅文档以将日志重定向到控制台。

  1. 启用 Metric 处理程序以收集访问信息以及有关对 InfluxDB 或 Promethus 的请求/响应的其他详细信息。

https://doc.networknt.com/concern/metrics/ https://doc.networknt.com/concern/prometheus/

  1. 使用 Jaeger 或 Skywalking 启用开放式跟踪以进行分布式跟踪。

https://doc.networknt.com/tutorial/tracing/

于 2020-01-08T13:52:35.373 回答