下面列出了org.apache.logging.log4j.core.util.Throwables#getRootCause ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
@Override
EventResolver createClassNameResolver() {
return (final LogEvent logEvent, final JsonWriter jsonWriter) -> {
final Throwable exception = logEvent.getThrown();
if (exception == null) {
jsonWriter.writeNull();
} else {
final Throwable rootCause = Throwables.getRootCause(exception);
final String rootCauseClassName = rootCause.getClass().getCanonicalName();
jsonWriter.writeString(rootCauseClassName);
}
};
}
@Override
EventResolver createMessageResolver(final EventResolverContext context) {
return (final LogEvent logEvent, final JsonWriter jsonWriter) -> {
final Throwable exception = logEvent.getThrown();
if (exception == null) {
jsonWriter.writeNull();
} else {
final Throwable rootCause = Throwables.getRootCause(exception);
final String rootCauseMessage = rootCause.getMessage();
jsonWriter.writeString(rootCauseMessage);
}
};
}
@Override
EventResolver createStackTraceStringResolver(final EventResolverContext context) {
final StackTraceStringResolver stackTraceStringResolver =
new StackTraceStringResolver(context);
return (final LogEvent logEvent, final JsonWriter jsonWriter) -> {
final Throwable exception = logEvent.getThrown();
if (exception == null) {
jsonWriter.writeNull();
} else {
final Throwable rootCause = Throwables.getRootCause(exception);
stackTraceStringResolver.resolve(rootCause, jsonWriter);
}
};
}
@Override
EventResolver createStackTraceObjectResolver(EventResolverContext context) {
return (final LogEvent logEvent, final JsonWriter jsonWriter) -> {
final Throwable exception = logEvent.getThrown();
if (exception == null) {
jsonWriter.writeNull();
} else {
final Throwable rootCause = Throwables.getRootCause(exception);
context.getStackTraceObjectResolver().resolve(rootCause, jsonWriter);
}
};
}