从 gradle 生成 log4j xml 配置

Generate log4j xml configuration from gradle

有什么方法可以在 gradle 项目中直接从 build.gradle 文件配置 log4j2 吗?

您可以在构建时使用 groovy 的 MarkupBuilder 生成 xml 配置文件。 生成默认配置并将其放置在资源文件夹中的示例任务(如果没有,请确保创建它):

task generateLog4jConfig{
    def writer = new StringWriter()
    def xml = new MarkupBuilder(writer) 

    xml.Configuration(status: 'WARN') {
        Appenders{
            Console(name: 'Console', target: 'SYSTEM_OUT'){
                PatternLayout(patern: '%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n')
            }
        } 
        Loggers{
            Root(level: 'error'){
                AppenderRef(ref: 'Console')
            }
        }       
    }
    def xmlFile = file('src/main/resources/log4j2.xml')
    xmlFile.delete()
    xmlFile.write(writer.toString())
}

您可以让您的构建任务依赖于它,因此请确保您的配置 xml 将始终与您的 gradle 文件的内容一致。