in log4j-weaver/src/main/java/org/apache/logging/log4j/weaver/log4j2/LoggerConversionHandler.java [234:253]
private void handleCatchingThrowing(LocationMethodVisitor mv, String descriptor, boolean throwing) {
final boolean hasLevel = Type.getArgumentTypes(descriptor).length > 1;
final int throwableIndex = mv.nextLocal();
mv.storeLocal(throwableIndex, THROWABLE_TYPE);
if (hasLevel) {
mv.invokeInterface(LOGGER_TYPE, AT_LEVEL_METHOD);
} else {
mv.invokeInterface(LOGGER_TYPE, AT_ERROR_METHOD);
}
mv.storeLocation();
mv.loadLocal(throwableIndex, THROWABLE_TYPE);
mv.invokeInterface(LOG_BUILDER_TYPE, WITH_THROWABLE_METHOD);
mv.getStatic(ABSTRACT_LOGGER_TYPE, throwing ? THROWING_MARKER : CATCHING_MARKER, MARKER_TYPE);
mv.invokeInterface(LOG_BUILDER_TYPE, WITH_MARKER_METHOD);
mv.push(throwing ? THROWING : CATCHING);
mv.invokeInterface(LOG_BUILDER_TYPE, LOG_BUILDER_LOG_STRING_METHOD);
if (throwing) {
mv.loadLocal(throwableIndex, THROWABLE_TYPE);
}
}