protected ThrowableHandlingConverter createThrowableProxyConverter(LoggerContext context) {
        if (exceptionFormat == null) {
            return new RootCauseFirstThrowableProxyConverter();
        }

        ThrowableHandlingConverter throwableHandlingConverter;
        if (exceptionFormat.isRootFirst()) {
            throwableHandlingConverter = new RootCauseFirstThrowableProxyConverter();
        } else {
            throwableHandlingConverter = new ExtendedThrowableProxyConverter();
        }

        List<String> options = new ArrayList<>();
        // depth must be added first
        options.add(exceptionFormat.getDepth());
        options.addAll(exceptionFormat.getEvaluators());

        throwableHandlingConverter.setOptionList(options);
        throwableHandlingConverter.setContext(context);

        return throwableHandlingConverter;
    }
@Test
    void testCreateThrowableProxyConverter_Default() throws Exception {
        EventJsonLayoutBaseFactory factory = new EventJsonLayoutBaseFactory();

        ThrowableHandlingConverter converter = factory.createThrowableProxyConverter(new LoggerContext());
        converter.start();

        assertThat(converter.isStarted()).isTrue();

        int originalSize = (int)getStackTraceAsString(proxy.getThrowable()).lines().count();

        assertThat(converter.convert(event))
            .hasLineCount(originalSize) // Verify that the full stack is included
            .containsSubsequence("r00t", "wrapp3d"); // Verify that the root is first
    }