Передайте свойства в log4j перед загрузкой - PullRequest
1 голос
/ 22 октября 2010

Есть ли способ передать данные или настройки в log4j перед их загрузкой, а затем использовать это свойство в файле конфигурации.

Я предполагал, что есть системные свойства, которые я мог бы использовать:

log4j.appender.R.File = / USR / местные / Пл / журналы / $ {ws.host} /log4j.log

Где ws.host - это свойство, которое я хочу использовать.

Но как мне установить это значение?

Кроме того, я нахожусь в веб-среде. Как узнать, в какой момент устанавливать настройки свойства перед загрузкой log4j.

1 Ответ

4 голосов
/ 22 октября 2010

Log4j по умолчанию PropertiesConfigurator поддерживает подстановку переменных.

Таким образом, вы можете передать системные свойства, подобные этому "-DmyProject.logFile="/temp/test.log", в ваш запуск Java, а затем в файлах свойств будет "log4j.appender.R.File=${myProject.logFile}".

Если вы работаете из веб-среды, вы можете проверить Log4jConfigListener Spring.Он использует слушатель (Servlet API 2.4+) для инициализации log4j перед другими компонентами.Даже если вы не используете Spring, вы сможете использовать источник в качестве примера для простого создания собственного слушателя.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...