使用 Opentracing 和 Jaeger 记录异常

Logging Exceptions with Opentracing and Jaeger

我已经在 Java 环境中使用 Opentracing 设置了 Jaeger,它可以很好地处理带有 span 和跟踪的日志消息。但是在捕获和记录异常方面我有点卡住了。

    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()));
    }

但是这种方式并没有以一种易于阅读的方式格式化错误日志。

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

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

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

问题已解决。