Resque/Resque-Scheduler がバックグラウンド ジョブを実行している Puma サーバー上に Rails 4 アプリがあります。私が知りたいのは、2 つの Resque ワーカーのログ出力をサーバー ログにマージする方法、またはそれは不可能ですが、Resque ワーカーのログ出力を表示する方法です。現在、ワーカーのログ出力を表示する方法を理解できていないため、内部で何が起こっているのかわかりません。この blogpostを見つけました。これは、ファイルに次のようなものを追加することを提案していresque.rake
ます:
task "resque:setup" => :environment do
Resque.before_fork = Proc.new {
ActiveRecord::Base.establish_connection
# Open the new separate log file
logfile = File.open(File.join(Rails.root, 'log', 'resque.log'), 'a')
# Activate file synchronization
logfile.sync = true
# Create a new buffered logger
Resque.logger = ActiveSupport::BufferedLogger.new(logfile)
Resque.logger.level = Logger::INFO
Resque.logger.info "Resque Logger Initialized!"
}
end
それはうまくいきませんでした。コメントで に置き換える提案も試しましたが、それResque.logger = ActiveSupport::BufferedLogger.new(logfile)
もResque.logger = ActiveSupport::Logger.new(logfile)
うまくいきませんでした。2 番目のオプションを使用してもNoMethodError: undefined method 'logger=' for Resque:Module
、ワーカーを起動しようとするとエラーが発生します。
ここに私の現在のresque.rake
ファイルがあります:
require 'resque/tasks'
require 'resque_scheduler/tasks'
namespace :resque do
puts "Loading Rails environment for Resque"
task :setup => :environment do
require 'resque'
require 'resque_scheduler'
require 'resque/scheduler'
require 'postman'
end
end
私はロギングに関する Resque のドキュメントを見てきましたが、Rails でのロギングについてあまり知らないので、そこにあるものの使い方がわかりません。この件に関する他の有用なリソースを見つけることができませんでした。