My Rails3应用程序包括几个通过cron调用的"rails runner"作业。
我想将通过cron运行的作业的输出发送到一个不同的日志文件,然后再发送普通web请求的日志输出。
我希望避免创建一个单独的环境来执行此操作,因为除了日志输出的位置之外,所有内容都是相同的。
我可以从类似的问题中拼凑出的最好的建议是在初始化后重置paths.log配置,方法如下。。。
class SomeModel < ActiveRecord::Base
def self.some_job
Rails.configuration.paths.log = "/path/to/cron.log"
//do some stuff
end
end
但不幸的是,这不起作用。日志输出仍然显示在log/{environment}.log中。
有什么建议吗?
答案是:
class SomeModel < ActiveRecord::Base
ActiveRecord::Base.logger = Logger.new('/path/to/cron.log')
def self.some_job
//do some stuff
end
end