2010-02-12 56 views
5

有没有办法配置log4j.xml文件让多个appender共享相同的布局?我已经将布局参数复制到了每个appender中,但是如果模式更改,这是一种痛苦(并且似乎很奇怪,我需要这样做)在多个位置更新它。java log4j.xml共享布局的多个appender

感谢, 杰夫

+0

你有几个appender?如果你有这么多以至于很难维持它们,那么你很可能会以错误的方式去做事。 – skaffman 2010-02-12 14:33:59

+0

现在我有2.一个控制台appender和文件appender。我只是希望日志消息在两者中看起来都一样,而且我的布局模式都相同。似乎我应该能够巩固... – 2010-02-12 14:38:11

回答

3

你有没有考虑过使用log4j.properties代替的log4j.xml?属性版本接受值的变量替换。

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

从我记得的(不知道,但:D)你也可以在log4j.xml文件中有这个,但变量必须定义为系统变量(-DsomeProp=value),在你的log4j.xml中,你再次使用${someProp}。虽然这个版本有点混乱,因为你没有在你使用它们的地方声明params,就像你在log4j.properties中做的那样。

+0

我会给它一个log4j.properties一枪。我认为你是对的,它确实支持这些属性,但出于某种原因,我更喜欢xml格式。谢谢。 – 2010-02-16 22:03:01