Ruby 守护进程日志轮换

发布于 2024-10-27 13:13:19 字数 453 浏览 6 评论 0原文

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

logger = Logger.new('foo.log', 10, 1024000)

守护进程选项:

options = {
      :ARGV         => ['start'],
      :dir_mode     => :normal, 
      :dir          => log_dir,
      :multiple     => false,
      :ontop        => false
      :mode         => :exec,
      :backtrace    => true,
      :log_output   => true
    }

When I'm setting logging parameters to the Daemons (1.1.0) gem, how would I achieve similar behavior to this line?

logger = Logger.new('foo.log', 10, 1024000)

Daemon options:

options = {
      :ARGV         => ['start'],
      :dir_mode     => :normal, 
      :dir          => log_dir,
      :multiple     => false,
      :ontop        => false
      :mode         => :exec,
      :backtrace    => true,
      :log_output   => true
    }

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

溺孤伤于心 2024-11-03 13:13:19

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

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

因此,您必须使用类似 logrotate 并重新启动守护进程。

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

Unfortunately the Daemons gem does not use Logger. It redirects STDOUT and STDERR directly to a file.

You can see the details of how the redirection works here:
https://github.com/ghazel/daemons/blob/master/lib/daemons/daemonize.rb#L241-261

Because of this, you will have to use something like logrotate and restart the daemon if you want to do log file rotation.

If this is not acceptable, I would suggest using Logger directly like you provided in the question.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文