Если ваш tomcat находится на сервере linux и вы запускаете его с определенным пользователем, у которого нет прав на выполнение для папки журнала, ваш log4j не будет воссоздавать ваши журналы, потому что, вероятно, он имеет только права на чтение / запись.
Если это так, попробуйте:
chmod 755
в папке с содержимым
EDIT:
Вторая возможность заключается в том, что некоторые операционные системы завершают операцию «удаления» только тогда, когда файл больше не используется. Если это так, ваш кот все еще может «видеть» журнал, как там.
EDIT2:
В этом случае выполните задание cron, которое каждые несколько минут проверяет наличие файла. Если не просто воссоздать его. Я предоставлю решение в течение нескольких минут.
Так что bash, который должен быть в вашем crontab, будет выглядеть примерно так:
if [ ! -f /tomcat_dir/log4j.log ]
then
`touch /tomcat_dir/log4j.log`;
fi