如何将Configslurper配置转换为Log4j?

时间:2013-12-19 13:47:49

标签: java groovy log4j

Groovy ConfigSlurper http://groovy.codehaus.org/ConfigSlurper提供了一个很好的示例,说明如何使用ConfigSlurper定义Log4j配置。

E.g。

log4j {
    appender.stdout = "org.apache.log4j.ConsoleAppender"
    appender."stdout.layout"="org.apache.log4j.PatternLayout"
    rootLogger="error,stdout"
    logger {
        org.springframework="info,stdout"
    }
    additivity {
        org.springframework=false
    }
}

基本上,ConfigSlurper只返回一个嵌套映射,其中包含String类型,布尔值等Java类型。

实际使用这些配置设置并将其应用于基础Log4j系统的最佳方法是什么?

注意:我不是使用Grails,而是使用vanilla Spring。

2 个答案:

答案 0 :(得分:0)

像蒂姆耶茨评论:

org.apache.log4j.PropertyConfigurator.configure(
    new ConfigSlurper().parse(new File("config.groovy").toURL()).toProperties())

工作出色!

谢谢蒂姆!

答案 1 :(得分:0)

您可以直接从代码配置log4j,而无需创建如下的属性文件:

def log4jConfig = """
log4j {
    appender.stdout = "org.apache.log4j.ConsoleAppender"
    appender."stdout.layout"="org.apache.log4j.PatternLayout"
    rootLogger="error,stdout"
    logger {
        org.springframework="info,stdout"
    }
    additivity {
        org.springframework=false
    }
}
"""

def config = new ConfigSlurper().parse(log4jConfig)
PropertyConfigurator.configure(config.toProperties())