概述

LogSlot 是 ClusterBuilderSlot 节点后面的节点,负责记录异常日志。

解析

继承关系

image.png

entry() 方法

entry 方法作用是在后续节点抛出异常时打印异常日志。

1
2
3
4
5
6
7
8
9
10
11
12
13
@Override
public void entry(Context context, ResourceWrapper resourceWrapper, DefaultNode obj, int count, boolean prioritized, Object... args)
throws Throwable {
try {
fireEntry(context, resourceWrapper, obj, count, prioritized, args);
} catch (BlockException e) {
EagleEyeLogUtil.log(resourceWrapper.getName(), e.getClass().getSimpleName(), e.getRuleLimitApp(),
context.getOrigin(), count);
throw e;
} catch (Throwable e) {
RecordLog.warn("Unexpected entry exception", e);
}
}

exit() 方法

exit() 方法在后续节点执行抛出异常时打印异常日志。

1
2
3
4
5
6
7
8
@Override
public void exit(Context context, ResourceWrapper resourceWrapper, int count, Object... args) {
try {
fireExit(context, resourceWrapper, count, args);
} catch (Throwable e) {
RecordLog.warn("Unexpected entry exit exception", e);
}
}