如何覆盖使用 "rails runner" 调用的命令行作业的日志路径?



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

相关内容

  • 没有找到相关文章

最新更新