我写了一个Dancer应用程序,日志配置:
logger: file
logger_format: <%T> %m
log_path: '/usr/local/myapp/log'
log_file: 'myapp.log'
log: debug
并以:
开头plackup -E deployment -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
}
但是新的日志文件是零。
我试图在logrotate conf中添加后旋转以发送HUP并在bin/app.pl
中使用
舞者:记录器::文件::init;
但是没有任何帮助。
谁能告诉我如何旋转舞者的日志文件?
让这种情况发生的一个解决方案是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