java log4j.xml共享布局的多个附加器

java log4j.xml共享布局的多个附加器,java,configuration,log4j,Java,Configuration,Log4j,有没有办法将log4j.xml文件配置为多个appender共享同一布局?我已经将布局参数复制到了每个appender中,但是如果模式发生变化,在多个地方更新布局参数是一件痛苦的事情(我需要这样做似乎很奇怪) 谢谢, Jeff您是否考虑过使用log4j.properties而不是log4j.xml?属性版本接受值的变量替换 您可以在log4j.properties文件中创建自己的属性(someProp=value),然后使用${someProp}获取值 根据我的记忆(虽然不确定:D),您也可以在

有没有办法将log4j.xml文件配置为多个appender共享同一布局?我已经将布局参数复制到了每个appender中,但是如果模式发生变化,在多个地方更新布局参数是一件痛苦的事情(我需要这样做似乎很奇怪)

谢谢,
Jeff

您是否考虑过使用log4j.properties而不是log4j.xml?属性版本接受值的变量替换

您可以在log4j.properties文件中创建自己的属性(
someProp=value
),然后使用
${someProp
}获取值


根据我的记忆(虽然不确定:D),您也可以在log4j.xml文件中使用它,但变量必须定义为系统变量(
-DsomeProp=value
),并且在log4j.xml中再次使用
${someProp}
。不过,这个版本有点混乱,因为您没有像在log4j.properties中那样在使用参数的同一位置声明参数。

您有多少appender?如果你有太多的东西,以至于维持它们很痛苦,那么你很可能是走错了路。现在我有两个。控制台追加器和文件追加器。我只是希望日志消息在这两种情况下看起来都一样,并且我对这两种情况都有相同的布局模式。看起来我应该能够整合…我将尝试使用log4j.properties。我认为您是对的,它确实支持属性,但出于某种原因,我更喜欢xml格式。谢谢