Как упоминал Майкл Рэнсли, вам нужно определить, кому нужен log4j. Если это веб-приложение, то лучшим вариантом будет WEB-INF / lib.
Если он используется компонентами EJB, поместите log4j в качестве утилиты jar в EAR.
Либо создайте общую библиотеку и свяжите общую библиотеку с вашим приложением.
Другим вариантом было бы связать разделяемую библиотеку с вашим сервером (а не с приложением), и в этом случае она становится доступной для всех приложений, работающих на этом сервере.
Хранение на сервере приложений lib / ext или других базовых путей обычно является плохой идеей. Причина в том, что это может вызвать конфликты (log4j не вызывает конфликтов, но другие Jar могут вызвать конфликты) и может помешать даже запуску сервера приложений.
Также помните, что в зависимости от того, где хранится файл log4j.jar (или связан с помощью общих библиотек), разные загрузчики классов будут получать этот файл JAR.