1

我已经在 J​​ava 环境中使用 Opentracing 设置了 Jaeger,它可以很好地使用跨度和跟踪记录消息。但是在捕获和记录异常时我有点卡住了。

    try
    {
        span.log(ImmutableMap.of("Exeption", "ex"));
        throw new IllegalArgumentException("Expecting one argument");
    }
    catch(Exception ex)
    {
       span.log(ImmutableMap.of("Error", ex));
       span.log(ImmutableMap.of("Event", "error", "Error-object", ex, "message", ex.getStackTrace()));
    }

但是这种方式不会以一种可读的方式格式化错误日志。

我已经四处寻找有关此的信息,因为感觉很明显应该存在,因为这是其用于记录的组件之一。但不知何故,我从未见过任何关于此的事情。它主要是关于构建和构建跨度。希望任何人在捕获和记录异常时都可以帮助我。

4

1 回答 1

1

这个问题看起来更多地与 Java 本身有关,然后是 Opentracing 和 Jaeger。这ex.getStackTrace()是更多的问题。因为它应该更像

StringWriter errors = new StringWriter();
ex.printStackTrace(new PrintWriter(errors));
span.setTag("error", true);
span.log(ImmutableMap.of("stack", errors));

问题解决了。

于 2019-03-21T09:44:21.313 回答