Event 用来记录一件事发生的次数,比如记录系统异常,它和transaction相比缺少了时间的统计,开销比transaction要小。
Cat.logEvent
记录一个事件。
Cat.logEvent("URL.Server", "serverIp", Event.SUCCESS, "ip=${serverIp}");
Cat.logError
记录一个带有错误堆栈信息的 Error。
Error 是一种特殊的事件,它的 type 取决于传入的 Throwable e .
- 如果 e 是一个 Error , type 会被设置为 Error 。
- 如果 e 是一个 RuntimeException , type 会被设置为 RuntimeException 。
- 其他情况下, type 会被设置为 Exception 。
同时错误堆栈信息会被收集并写入 data 属性中。
try {
int i = 1 / 0;
} catch (Throwable e) {
Cat.logError(e);
}
启动项目,访问接口http://localhost:9100/event/logEvent和http://localhost:9100/event/logError。
通过上图可以看到,增加了两个事件:URL.Server和RuntimeException。点开LOG查看。
这里出现了两个Event的详细内容:
- URL.Server是一个正常的事件,打印出了IP=127.0.0.1的信息。
- RuntimeException是一个错误Event,不仅打印出了错误堆栈,还将我们打印的
error(X) := exception(X)
内容放到了堆栈的最上方便于查看。