На самом деле вам нужно использовать процедуру запуска сервера приложений (все они разные) для инициализации системы log4j. Поскольку Log4j опирается на статические переменные, он не может работать независимо самостоятельно (это может, но это будет зависеть от сервера приложений). В большинстве случаев конфигурация действительно будет глобальной для всего сервера приложений.
Вы должны быть уверены, что метод PropertyConfigurator.configureAndWatch вызывается только один раз. Один из способов сделать это - поместить что-то в JNDI.
Многое из этого будет зависеть от того, что сервер приложений вам дает. Например, мы используем JBoss, и Log4J настроен как его часть, и вы просто изменяете файл log4j.xml, чтобы включить в него то, что нужно вашим классам. JBoss гарантирует, что это делается динамически.
РЕДАКТИРОВАТЬ: Здесь - это инструкции для Websphere по созданию настраиваемой службы, внутри которой вы создадите свою конфигурацию log4J и выполните мониторинг файла. Пара предостережений. Вам нужно будет добавить log4j.jar в classpath самого сервера приложений, чтобы он был доступен для войны или ушей (я уверен, что это будет работать в любом случае), и пользовательская служба, скорее всего, не будет работа внутри уха.
Здесь - это альтернатива, которая будет держать все на войне или слух, но за счет динамической загрузки изменений в журнале.