Рассматривали ли вы использовать log4j.properties вместо log4j.xml? Версия свойств принимает подстановку переменных для значений.
Вы можете создать свои собственные свойства в файле log4j.properties (someProp=value
) и позже использовать ${someProp
}, чтобы получить значение.
Из того, что я помню (хотя не уверен: D), вы также можете иметь это в файле log4j.xml, но переменные должны быть определены как системные переменные (-DsomeProp=value
), а в вашем log4j.xml вы снова используете ${someProp}
. Хотя эта версия немного грязная, потому что у вас нет объявленных параметров в том же месте, где вы их используете, как в log4j.properties.