使用 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));
问题已解决。
我已经在 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));
问题已解决。