【问题标题】:Is there a way to set Logbook log level above TRACE?有没有办法将 Logbook 日志级别设置为 TRACE 以上?
【发布时间】:2021-11-21 08:39:16
【问题描述】:

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

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

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

我已尝试将 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

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

【问题讨论】:

    标签: java spring-boot configuration logback logbook


    【解决方案1】:

    如果您使用 Spring Boot 自动配置,您可以查看 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);
        }
    
      }
    
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-08-24
      • 1970-01-01
      • 2021-11-25
      • 1970-01-01
      • 2020-07-05
      • 2023-03-25
      • 1970-01-01
      相关资源
      最近更新 更多