2014-10-07 5 views
1

В настоящее время я использую Log4cpp для ведения журналов на платформе Linux RHEL.Создайте файл log4cpp во время выполнения

Я постоянно регистрирую приложение-демон.

Моя проблема заключается в том, что файл журнала, сгенерированный log4cpp, может быть удален в любое время (с помощью команды rm, logrotate и т. Д.), И хотя файл будет удален, дескриптор файла все еще открывается демоном. Log4cpp продолжает пытаться войти в файл, но ничего не добавляется, новые строки журнала теряются, пока я вручную не создаю новый файл журнала.

Я обратился к проблеме логротата, используя сигнал SIGHUP в конфигурации logrotate, чтобы демон разрешал экземпляр log4cpp при каждом вращении журнала. Но я желаю более разумного способа, потому что новый пользователь не отправит SIGHUP моему демону после того, как он распакует каталог журнала, и заметит, что демона не регистрируется.

Любые идеи?

ответ

0

Вместо использования LogRotate для изменения выходного файла, вы можете использовать RollingFileAppender из log4cpp

Примером log4cpp.properties может быть:

log4cpp.rootCategory=DEBUG, rolling 
log4cpp.appender.rolling=RollingFileAppender 
log4cpp.appender.rolling.maxFileSize=1048576 
log4cpp.appender.rolling.maxBackupIndex=5 
log4cpp.appender.rolling.fileName=output.log 
log4cpp.appender.rolling.layout=PatternLayout 
log4cpp.appender.rolling.layout.ConversionPattern=%d [%p] - %m%n 
Смежные вопросы