使用logbook打印http请求日志

    科技2022-07-13  126

    1.导入pom依赖

    <dependency> <groupId>org.zalando</groupId> <artifactId>logbook-core</artifactId> <version>${logbook.version}</version> </dependency> <dependency> <groupId>org.zalando</groupId> <artifactId>logbook-servlet</artifactId> <version>${logbook.version}</version> </dependency> <dependency> <groupId>org.zalando</groupId> <artifactId>logbook-httpclient</artifactId> <version>${logbook.version}</version> </dependency> <dependency> <groupId>org.zalando</groupId> <artifactId>logbook-spring-boot-starter</artifactId> <version>${logbook.version}</version> </dependency>

    2.在application.properties中配置显示方式

    logbook.write.level=TRACE logbook.format.style=http

    3.在定义httpClient的bean中,加入拦截

    @Autowired private LogbookHttpRequestInterceptor logbookHttpRequestInterceptor; @Autowired private LogbookHttpResponseInterceptor logbookHttpResponseInterceptor; /** * httpclient bean 的定义 * @return */ @Bean @ConditionalOnMissingBean(HttpClient.class) public HttpClient httpClient() { RequestConfig requestConfig = RequestConfig.custom() .setConnectTimeout(properties.getConnectTimeOut()) .setSocketTimeout(properties.getSocketTimeOut()).build();// 构建requestConfig HttpClient client = HttpClientBuilder.create().setDefaultRequestConfig(requestConfig) .setUserAgent(properties.getAgent()) .setMaxConnPerRoute(properties.getMaxConnPerRoute()) .setMaxConnTotal(properties.getMaxConnTotaol()) .addInterceptorFirst(logbookHttpRequestInterceptor) .addInterceptorFirst(logbookHttpResponseInterceptor) .build(); return client; }

     

    Processed: 0.011, SQL: 8