0

我希望日志记录器以 INFO 级别而不是 TRACE 记录。该文档指出:

日志记录器必须配置为跟踪级别才能记录请求和响应

我知道这也许是一个最佳实践,但我不明白为什么它不能在 INFO 的技术级别登录。当我将其“设置”为以 INFO 级别记录时,它不会记录任何内容。我正在使用 2.13.0 版的 logbook-spring-boot-starter

我尝试将 application.yml 设置如下:

logbook:
  exclude:
    - /swagger-ui.html
    - /schema/**
    - /health
    - /favicon.ico
    - /togglz-console/**
  filter.enabled: true
  format.style: json
  write:
    level: INFO
    max-body-size: 8192

我也试过设置

logging.level.org.zalando.logbook to INFO.

在 logback 上运行调试表示它会将 INFO 传播到 Logbook 并且没有记录错误:

|-INFO in ch.qos.logback.classic.jul.LevelChangePropagator@6b3bcab7 - Propagating INFO level on Logger[org.zalando.logbook] onto the JUL framework

我错过了什么吗?我可以试试别的吗?

4

1 回答 1

0

如果您使用的是 Spring Boot Autoconfiguration,您可以查看DefaultHttpLogWriter并创建您自己HttpLogWriter的日志,以您所需的级别:

@Configuration
public class LoggingConfig {

  @Bean
  public HttpLogWriter httpLogWriter() {
    return new InfoLevelHttpLogWriter();
  }

  static class InfoLevelHttpLogWriter implements HttpLogWriter {

    private final Logger log = LoggerFactory.getLogger(Logbook.class);

    @Override
    public boolean isActive() {
      return log.isInfoEnabled();
    }

    @Override
    public void write(final Precorrelation precorrelation, final String request) {
      log.info(request);
    }

    @Override
    public void write(final Correlation correlation, final String response) {
      log.info(response);
    }

  }

}
于 2021-12-25T18:58:26.333 回答