Если вы говорите, что он хорошо работает в вашей IDE и что он не работает как веб-приложение, возможно, вы помещаете файл log4j.properties в неправильное местоположение.
При запуске вашегоприложение из командной строки вы, скорее всего, передаете ему аргумент JVM: log4j.configuration = / path / to / my / file / log4j.properties
В контексте веб-приложения контейнер сервлета будет отвечать зазагрузка конфигурации log4j.Обычно это делается путем загрузки файла log4j.properties/xml, который находится в WEB-INF / classes
Другой вариант - добавить его в переменную среды CATALINA_OPS. Вы можете посмотреть здесь
EDIT : если вы уверены, что права доступа к файлам в порядке и оба файла действительно загружены, я бы предложил запустить log4j в режиме отладки, в этом режиме log4j выведетвнутренние сообщения, например, какой файл он загружает и какие приложения настраиваются.это ваш лучший выбор при отладке.
Чтобы использовать log4j в режиме отладки, я думаю, у вас должна быть log4j XML-конфигурация и добавление атрибута debug="true"
к корневому элементу, как только это будет сделано (и предполагая, что файл конфигурации действительно прочитан), вы должны точно увидеть, что делает log4j.