Ruby Daemons记录旋转

Tom*_*mmy 6 ruby rubygems daemons

当我将日志记录参数设置为Daemons(1.1.0)gem时,我将如何实现与此行相似的行为?

logger = Logger.new('foo.log', 10, 1024000)
Run Code Online (Sandbox Code Playgroud)

守护进程选项:

options = {
      :ARGV         => ['start'],
      :dir_mode     => :normal, 
      :dir          => log_dir,
      :multiple     => false,
      :ontop        => false
      :mode         => :exec,
      :backtrace    => true,
      :log_output   => true
    }
Run Code Online (Sandbox Code Playgroud)

eri*_*ric 3

不幸的是 Daemons gem 不使用 Logger。它重定向STDOUTSTDERR直接到一个文件。

您可以在此处查看重定向如何工作的详细信息: https://github.com/ghazel/daemons/blob/master/lib/daemons/daemonize.rb#L241-261

因此,如果您想进行日志文件轮换,则必须使用logrotate之类的工具并重新启动守护进程。

如果这是不可接受的,我建议Logger像您在问题中提供的那样直接使用。