使用ruby中的守护进程在不同目录中添加日志

我正在使用守护进程来包装我的脚本,并将日志位置指定为:脚本如下所示:

#!/usr/local/bin/ruby require 'rubygems' require 'daemons' Daemons.run_proc( 'script_test', # name of daemon :log_output => true, :output_logfilename => "script-test.log", :logfilename => "script-test.log" ) do exec 'ruby /opt/script-test/script-test.rb' end 

问题是我的日志存储在我的脚本所在的同一目录中。 我必须将我的日志添加到不同的目录,例如/ var / log / script-test,然后必须每周轮换这些日志。 为我提供解决方案,以便我可以将脚本日志存储在/ var / log目录中。

确保使用绝对路径而不是相对路径

例如:

 :output_logfilename => "/var/log/script-test.log", :logfilename => "/var/log/script-test.log" 

为了记录日志,(假设Linux)将以下内容添加到logrotate配置中以每周轮换:

 /var/log/script-test.log { weekly missingok compress notifempty copytruncate } 

这个配置对我有用:

 Daemons.run_proc( 'script-test', # name of daemon :log_output => true, :dir_mode => :normal, :dir => "/var/log", :output_logfilename => "script-test.log", :logfilename => "script-test.log" ) do exec 'ruby /opt/script-test/script-test.rb' 

结束