Обновите log4j в приложении и обновите log4j.properties - PullRequest
1 голос
/ 02 декабря 2011

У меня есть несколько приложений, использующих log4j для ведения журналов, каждое из которых загружает настройки из отдельных log4j.properties, загружаемых из пути к классам (просто файл на диске, а не файл .jar или что-либо, что делает его доступным только для чтения). В каждом из этих приложений я хочу разрешить обновление уровня журнала через обычный пользовательский интерфейс.

Я использую для этого общий служебный класс, который используется совместно приложениями. Я могу сделать это в течение всего срока службы приложения, но поскольку изменения не сохраняются, вернитесь в соответствующий файл log4j.properties, при следующем перезапуске он сбрасывается до определенного уровня в файле свойств.

Поскольку он только что загружен из пути к классам, я не знаю полного пути к файлу журнала в каждом приложении, и, поскольку это общий класс, я бы предпочел не использовать жесткие пути. Есть ли способ заставить log4j записать свои изменения в конфигурацию на диске?

1 Ответ

2 голосов
/ 02 декабря 2011

Предлагаю вам перевернуть проблему с ног на голову.

Всегда записывайте изменения в файл log4j.properties на диске, а затем устанавливайте прослушиватель, который проверяет наличие изменений в этом файле и обновляет соответствующие уровни журнала.

...