How to mute logging from IvySettings

Hi all,

I’m trying to parse artifact data from an external Ivy file as follows

    private Set<Artifact> readArtifactsSet(File ivyFile, Project project) {
        project.logger.debug("Parsing ivy file [$ivyFile]")
        def factory = new DefaultImmutableModuleIdentifierFactory()
        def fileRepository = ((GradleInternal) project.getGradle()).getServices().get(FileResourceRepository.class)
        def metadataFactory = ((GradleInternal) project.getGradle()).getServices().get(IvyMutableModuleMetadataFactory.class)
        new DisconnectedIvyXmlModuleDescriptorParser(new IvyModuleDescriptorConverter(factory), factory, fileRepository, metadataFactory)
                .parseMetaData(new DisconnectedDescriptorParseContext(), ivyFile)
                .result.artifactDefinitions.toSet()
    }

It works as expected, but prints the following line every time

:: loading settings :: url = jar:file:/home/jk/.gradle/wrapper/dists/gradle-5.6-all/4chhpeaqtrfx4ih6mafwwr40u/gradle-5.6/lib/plugins/ivy-2.3.0.jar!/org/apache/ivy/core/settings/ivysettings.xml

How do I get rid of it?
Tried to tune Ant logging level, but it doesn’t seem to have any effect on Ivy.

So I ended up parsing ivy.xml myself instead. Not only it solves the logging issue, but also makes the code independent from internal Gradle classes.

    private Set<IvyArtifactName> readArtifactsSet(File ivyFile) {
        project.logger.debug("Parsing ivy file [$ivyFile]")
        def ivyModule = new XmlSlurper().parseText(ivyFile.text)
        return ivyModule.publications.childNodes().collect {
            new IvyArtifactName(name: it.attributes().get("name"), extension: it.attributes().get("ext"))
        }
    }