У меня есть сервлет, который должен регистрировать сообщения в log4j. В среде разработки (Windows + Eclipse + tomcat) работает log4j.
Когда я развертывал сервлет в рабочей среде (AIX + websphere), он не давал никакого журнала.
Я не знаю, что случилось. Какова возможная причина? Файл war был создан eclipse после проверки работоспособности функции ведения журнала в среде разработки. Я хочу собрать больше подсказок, прежде чем снова развернуть его в производстве.
Java-программа не дала никаких подсказок. Я посмотрел SystemOut.log, и регистраторы log4j были успешно инициализированы, однако они не сказали, что что-то пошло не так с файлами журналов.
Я подозреваю, что 2 причины:
1) каталог журналирования имеет права drwxr-xr-x, может быть, программа java не имеет права создавать файл там?
2) Файлы log4j.properties были странными. Когда я посмотрел его в AIX через vi, я обнаружил, что после каждого конца строки стоит ^ M. Вероятно, Unix не нужен этот символ возврата каретки. Может быть, этот персонаж ^ M испортил вещи?
РЕДАКТИРОВАТЬ: я обнаружил, что есть еще один файл журнала под названием SystemErr.log. Он содержал сообщение об ошибке:
[01.09.11 17: 07: 43: 086 HKT] 00000013 SystemErr R log4j: ОШИБКА
Ошибка вызова setFile (null, true).
[01.09.11 17: 07: 43: 086 HKT] 00000013
SystemErr R java.io.FileNotFoundException: /bps/log/BpsPdfBill.log
(Разрешения доступа к файлу не разрешают указанное действие.)