[case16]springboot2自定义HttpTraceRepository

codecraft

本文主要研究下springboot2自定义HttpTraceRepository

Configuration

@Configuration
@ConditionalOnWebApplication
@ConditionalOnProperty(prefix = "management.trace.http", name = "enabled", matchIfMissing = true)
@EnableConfigurationProperties(HttpTraceProperties.class)
@AutoConfigureBefore(HttpTraceAutoConfiguration.class)
public class TraceConfig {

    @Bean
    @ConditionalOnMissingBean(HttpTraceRepository.class)
    public RemoteHttpTraceRepository traceRepository() {
        return new RemoteHttpTraceRepository();
    }
}
这里新增了一个配置,在HttpTraceAutoConfiguration之前,自定义了traceRepository

RemoteHttpTraceRepository

public class RemoteHttpTraceRepository implements HttpTraceRepository {

    private static final Logger LOGGER = LoggerFactory.getLogger(RemoteHttpTraceRepository.class);

    @Override
    public List<HttpTrace> findAll() {
        return Collections.emptyList();
    }

    @Override
    public void add(HttpTrace trace) {
        //send log to remote server or log center
        LOGGER.info(JSON.toJSONString(trace));
    }
}
自定义RemoteHttpTraceRepository,可以自己在add方法将trace输出到日志服务器

小结

通过自定义HttpTraceRepository,对于webflux的工程来说可以自己实现类似tomcat的accesslog,非常方便。

doc

阅读 2k

code-craft
spring boot , docker and so on 欢迎关注微信公众号: geek_luandun

当一个代码的工匠回首往事时,不因虚度年华而悔恨,也不因碌碌无为而羞愧,这样,当他老的时候,可以很...

11.6k 声望
1.9k 粉丝
0 条评论
你知道吗?

当一个代码的工匠回首往事时,不因虚度年华而悔恨,也不因碌碌无为而羞愧,这样,当他老的时候,可以很...

11.6k 声望
1.9k 粉丝
文章目录
宣传栏