1 ,新建一个处理统计耗时的业务类
public class TimeWatcherObject{
private final Logger log;
public static TimeWatcher build(Logger logger) {
return new TimeWatcher(logger);
}
private TimeWatcher(Logger log) {
this.log = log;
}
public <T> void aroundVoid(String label, Supplier<T> action) {
LocalDateTime start = LocalDateTime.now();
String endTerm = "结束";
try {
this.log.info("【{}】开始", label);
action.get();
} catch (Throwable var9) {
endTerm = "异常结束";
this.log.error(var9.getMessage(), var9);
throw var9;
} finally {
this.log.info("【{}】{}。耗时 = {}", new Object[]{label, endTerm, Duration.between(start, LocalDateTime.now())});
}
}
2,然后在你的业务代码中调用:
TimeWatcherObject.build(log)
.aroundVoid(label, () -> {
//XX是你要统计耗时的执行方法
XX();
return Optional.empty();
})
本文介绍了一个名为TimeWatcherObject的Java类,用于在业务代码中记录并统计方法执行的耗时,同时捕获并记录异常。通过aroundVoid方法包围需统计的代码块,便于性能监控和调试。
251





