org.apache.logging.log4j.core.util.Throwables#getRootCause ( )源码实例Demo

下面列出了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);
        }
    };
}