在 ruby 中使用守护程序在不同目录中添加日志
Add logs in different directory using daemon in 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'
结束
我正在使用守护程序来包装我的脚本,并在其中指定了日志位置: 脚本看起来像这样:
#!/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'
结束