|
|
|
@ -21,6 +21,7 @@ import org.apache.logging.log4j.core.config.Configuration; |
|
|
|
import org.apache.logging.log4j.core.config.plugins.Plugin; |
|
|
|
import org.apache.logging.log4j.core.config.plugins.Plugin; |
|
|
|
import org.apache.logging.log4j.core.pattern.ConverterKeys; |
|
|
|
import org.apache.logging.log4j.core.pattern.ConverterKeys; |
|
|
|
import org.apache.logging.log4j.core.pattern.ExtendedThrowablePatternConverter; |
|
|
|
import org.apache.logging.log4j.core.pattern.ExtendedThrowablePatternConverter; |
|
|
|
|
|
|
|
import org.apache.logging.log4j.core.pattern.LogEventPatternConverter; |
|
|
|
import org.apache.logging.log4j.core.pattern.PatternConverter; |
|
|
|
import org.apache.logging.log4j.core.pattern.PatternConverter; |
|
|
|
import org.apache.logging.log4j.core.pattern.ThrowablePatternConverter; |
|
|
|
import org.apache.logging.log4j.core.pattern.ThrowablePatternConverter; |
|
|
|
import org.jspecify.annotations.Nullable; |
|
|
|
import org.jspecify.annotations.Nullable; |
|
|
|
@ -35,22 +36,30 @@ import org.jspecify.annotations.Nullable; |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
@Plugin(name = "ExtendedWhitespaceThrowablePatternConverter", category = PatternConverter.CATEGORY) |
|
|
|
@Plugin(name = "ExtendedWhitespaceThrowablePatternConverter", category = PatternConverter.CATEGORY) |
|
|
|
@ConverterKeys({ "xwEx", "xwThrowable", "xwException" }) |
|
|
|
@ConverterKeys({ "xwEx", "xwThrowable", "xwException" }) |
|
|
|
public final class ExtendedWhitespaceThrowablePatternConverter extends ThrowablePatternConverter { |
|
|
|
public final class ExtendedWhitespaceThrowablePatternConverter extends LogEventPatternConverter { |
|
|
|
|
|
|
|
|
|
|
|
private final ExtendedThrowablePatternConverter delegate; |
|
|
|
private final ExtendedThrowablePatternConverter delegate; |
|
|
|
|
|
|
|
|
|
|
|
private ExtendedWhitespaceThrowablePatternConverter(Configuration configuration, String @Nullable [] options) { |
|
|
|
private final String separator; |
|
|
|
super("WhitespaceExtendedThrowable", "throwable", options, configuration); |
|
|
|
|
|
|
|
|
|
|
|
private ExtendedWhitespaceThrowablePatternConverter(Configuration configuration, @Nullable String[] options) { |
|
|
|
|
|
|
|
super("WhitespaceExtendedThrowable", "throwable"); |
|
|
|
this.delegate = ExtendedThrowablePatternConverter.newInstance(configuration, options); |
|
|
|
this.delegate = ExtendedThrowablePatternConverter.newInstance(configuration, options); |
|
|
|
|
|
|
|
this.separator = this.delegate.getOptions().getSeparator(); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
@Override |
|
|
|
public void format(LogEvent event, StringBuilder buffer) { |
|
|
|
public void format(LogEvent event, StringBuilder buffer) { |
|
|
|
if (event.getThrown() != null) { |
|
|
|
if (event.getThrown() != null) { |
|
|
|
buffer.append(this.options.getSeparator()); |
|
|
|
buffer.append(this.separator); |
|
|
|
this.delegate.format(event, buffer); |
|
|
|
this.delegate.format(event, buffer); |
|
|
|
buffer.append(this.options.getSeparator()); |
|
|
|
buffer.append(this.separator); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
|
|
|
public boolean handlesThrowable() { |
|
|
|
|
|
|
|
return true; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
/** |
|
|
|
@ -61,7 +70,7 @@ public final class ExtendedWhitespaceThrowablePatternConverter extends Throwable |
|
|
|
* @return a new {@code WhitespaceThrowablePatternConverter} |
|
|
|
* @return a new {@code WhitespaceThrowablePatternConverter} |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
public static ExtendedWhitespaceThrowablePatternConverter newInstance(Configuration configuration, |
|
|
|
public static ExtendedWhitespaceThrowablePatternConverter newInstance(Configuration configuration, |
|
|
|
String @Nullable [] options) { |
|
|
|
@Nullable String[] options) { |
|
|
|
return new ExtendedWhitespaceThrowablePatternConverter(configuration, options); |
|
|
|
return new ExtendedWhitespaceThrowablePatternConverter(configuration, options); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|