序
本文主要研究下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,非常方便。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。