2013-05-30 7 views
2

Я написал приложение Танцовщица, с лог конфигурации:Как Танцовщица сигнал HUP приложение процесса, чтобы закрыть/открыть заново логфайл

logger:  file 
logger_format: <%T> %m 
log_path:  '/usr/local/myapp/log' 
log_file:  'myapp.log' 
log:   debug 

и запустить его с:

plackup -E -D развертывания - s Starman --workers = 10 --port 8080 -a bin/app.pl

вращать лог-файл с LogRotate

/usr/local/myapp/log/myapp.log { 
    daily 
    rotate 10 
    create 0660 root root 
    compress 
    missingok 
    dateext 
} 

, но новый файл журнала равен нулю.

Я пытался добавить postrotate в LogRotate конф отправить HUP и процесс HUP SINAL в bin/app.pl с

Dancer :: Logger :: File :: INIT;

но ничего не помогает.

Может ли кто-нибудь сказать мне, как повернуть файл журнала танцора?

ответ

0

Одно решение позволить этому случиться, что plackup поддерживает переключатель -R смотреть папку, так что вы могли бы добавить -R <appdir>/run, а затем изменить LogRotate на:

postrotate 
    touch <appdir>/run/last.run 

Насколько я могу сказать, хотя то, что вы хотите не может быть выполнена в этой конфигурации. Starman явно обрабатывает sighup для перезапуска дочерних процессов. От Starman/Server.pm:

24 # Override Net::Server's HUP handling - just restart all the workers and that's about it 
25 sub sig_hup { 
26  my $self = shift; 
27  $self->hup_children; 
28 } 

Возможно, вам необходимо альтернативное решение протоколирования, таких как использование Dancer::Logger::Syslog

Или, если вы должны записать в файл, может проверить изменения с Linux::Inotify2

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

  • Нет связанных вопросов^_^