Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Log4j2.xml将默认值设置为另一个变量_Java_Log4j2 - Fatal编程技术网

Java Log4j2.xml将默认值设置为另一个变量

Java Log4j2.xml将默认值设置为另一个变量,java,log4j2,Java,Log4j2,在log4j2.xml中,当为变量设置值时,是否可以将默认值设置为另一个变量 例如:我希望它首先尝试${env:KAFKA_BROKER_HOST},如果未设置,则将其设置为${env:KAFKA_HOST}:${env:KAFKA_PORT} 但这似乎不起作用: <Property name="bootstrap.servers">${env:KAFKA_BROKER_HOST:-${env:KAFKA_HOST}:${env:KAFKA_PORT}}</Property&g

在log4j2.xml中,当为变量设置值时,是否可以将默认值设置为另一个变量

例如:我希望它首先尝试
${env:KAFKA_BROKER_HOST}
,如果未设置,则将其设置为
${env:KAFKA_HOST}:${env:KAFKA_PORT}

但这似乎不起作用:

<Property name="bootstrap.servers">${env:KAFKA_BROKER_HOST:-${env:KAFKA_HOST}:${env:KAFKA_PORT}}</Property>
${env:KAFKA_BROKER_HOST:-${env:KAFKA_HOST}:${env:KAFKA_PORT}

如果未设置
${env:KAFKA_BROKER_HOST}
,那么我最终会得到文本值“${env:KAFKA_HOST}:${env:KAFKA_PORT}”

当我在
log4j2.xml
中测试它时,您的示例对我很有用!但是,当我取消设置
KAFKA_HOST/PORT
值时,我会看到文本。当您传入卡夫卡经纪人主机时,它是否有效?您是如何将这些环境变量传递给JVM的?我确认-我也复制了它,它对我有效。调用
System.getenv(“KAFKA_主机”)
System.getenv(“KAFKA_端口”)
以确保在Java应用程序中设置了这些变量。啊,看来我还有另一个问题导致了这一问题。看起来,如果没有设置变量,它将返回表达式的文本值