2014-01-28 2 views
0

У меня был запрос, чтобы найти решение для создания файла журнала защищенного от редактирования с пользователем (не суперпользователя) запустить экземпляр JBoss приложения (среды Linux)Как избежать выхода log4j внешней модификации

Первый Идея, которую я имел, - использовать chattr +a от пользователя root, чтобы разрешить только добавление нового файла raw в файл журнала.

Но файл Log4j настроен на поворот файла каждый день, поэтому я должен повторить команду chattr для каждого файла, созданного каждый день. Я также не уверен, что файл прошедшего дня в его «append only» состояние может быть заархивировано от поворота.

Любое предложение или альтернативный способ продолжения приветствуется.

ответ

0

Один из способов - создать собственный «ежедневный файл». В аналогичной ситуации я создал файл-приложение на основе CustodianDailyRollingFileAppender (подробнее см. Ответы в this question). Поместите свою пользовательскую версию в «log4j-custom.jar» и поместите ее в общий каталог lib JBoss. Последний шаг - обновить файл конфигурации log4j, чтобы использовать пользовательский файл appender.

В вашем пользовательском приложении для файлов вы можете выполнять команды (1), чтобы изменять атрибуты файла до и после сканирования журнальных файлов. Удостоверьтесь, что вы проверили свой загружаемый файл с помощью «угловых дел», например «нет предыдущих файлов журнала»: я обнаружил пару (легко решаемых) ошибок в оригинальном приложении-хранителе.

(1) Или используйте новые параметры файловой системы Java 7 POSIX.

+0

Вы также проверили возможность отправки файла журнала в syslogd с помощью SyslogAppender или вы по какой-то причине исключили его? –

+0

Нет, я не проверял эту возможность. Наверное, это может быть другим способом. – vanOekel

Смежные вопросы