JBoss logging framework detection logic is not straightforward and requires some hints to work properly in native images. The following is the minimum I could find:

public class JbossLoggerProvidersHints implements RuntimeHintsRegistrar {

    @Override
    public void registerHints(RuntimeHints hints, ClassLoader classLoader) {
        if (ClassUtils.isPresent("org.jboss.logging.LoggerProviders", classLoader)) {
            registerHints(hints.reflection());
        }
    }

    private void registerHints(ReflectionHints hints) {
        hints.registerMethod(findServiceLoaderLoadMethod(), ExecutableMode.INVOKE);
        hints.registerType(LocationAwareLogger.class, INTROSPECT_DECLARED_METHODS, INVOKE_DECLARED_METHODS);
    }

    private Method findServiceLoaderLoadMethod() {
        return ReflectionUtils.findMethod(ServiceLoader.class, "load", Class.class, ClassLoader.class);
    }

}

This is needed when you add validation starter. Without the above hints, it falls back to JUL.

Comment From: akefirad

On that note, I'm not sure if we can fix this during build time, since it's all about the org.jboss.logging.LoggerProviders#PROVIDER final static field.

Comment From: wilkinsona

Duplicates https://github.com/spring-projects/spring-boot/issues/33113 and the various issues to which it links.