基于主机名的Groovy logback配置

基于主机名的Groovy logback配置,groovy,logback,Groovy,Logback,我正在尝试使用主机名动态配置LogBack,以设置记录器的特定属性。 在任何appender之前,我初始化一个映射,如下所示: def HOSTNAME="${hostname}" def logEntriesTokens = [ "Info03": "myToken" ] 然后我做了以下工作: appender("LogEntriesAppender",LogentriesAppender){ encoder(PatternLayoutEncoder) { patt

我正在尝试使用主机名动态配置LogBack,以设置记录器的特定属性。 在任何appender之前,我初始化一个映射,如下所示:

def HOSTNAME="${hostname}"

def logEntriesTokens = [ "Info03": "myToken" ]
然后我做了以下工作:

appender("LogEntriesAppender",LogentriesAppender){
    encoder(PatternLayoutEncoder) {
        pattern = "%d{dd MMM yyyy ; HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n"
    }
    token = logEntriesTokens[HOSTNAME]
    println HOSTNAME
    println logEntriesToken
    println logEntriesTokens[HOSTNAME]
    println token
    Ssl = false
    facility = "USER"
    filter(ThresholdFilter){
        level = ERROR
    }

}
Info03
[Info03:myToken]
myToken
null
结果如下:

appender("LogEntriesAppender",LogentriesAppender){
    encoder(PatternLayoutEncoder) {
        pattern = "%d{dd MMM yyyy ; HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n"
    }
    token = logEntriesTokens[HOSTNAME]
    println HOSTNAME
    println logEntriesToken
    println logEntriesTokens[HOSTNAME]
    println token
    Ssl = false
    facility = "USER"
    filter(ThresholdFilter){
        level = ERROR
    }

}
Info03
[Info03:myToken]
myToken
null

由于某些原因,没有设置token属性,从Java中的appenders层次结构可以看出这一点。如果我改为输入一个常量,比如token=myToken,那么一切都正常。我哪里错了?

您好,您能找到解决方案吗?我在获取主机名时遇到了同样的问题