【问题标题】:How to change Rails 3.0's default log path?如何更改 Rails 3.0 的默认日志路径?
【发布时间】:2011-04-25 23:59:32
【问题描述】:

由于我公司的内部软件部署流程,我必须更改我的 rails 应用程序的默认日志路径:基本上我的 rails 应用程序最终位于只读位置,我需要将日志文件写入“为此而制作”的目录中.

在 Rails 2.x 中,我们过去常常在 FCGI 脚本中添加一些黑魔法,以便在部署到 prod 时强制执行。主持人:

class Rails::Configuration
   def default_log_path
     File.join(ENV['SOME_ENVIRONMENT_VAR'], "var/output/logs/rails.log")
   end
 end

但是,Rails 2.3 中的 Configuration 不再是一个类(它是一个模块),在我看来,那里也不再涉及任何 default_log_path...

【问题讨论】:

    标签: ruby-on-rails logging ruby-on-rails-3


    【解决方案1】:

    你只需要定义你的记录器

    config.logger = ActiveSupport::BufferedLogger.new(File.join(ENV['SOME_ENVIRONMENT_VAR'], "var/output/logs/rails.log"))
    

    这个技巧也适用于 Rails 2。您可以根据您真正需要日志文件的环境来定义。

    【讨论】:

    • 实际上 Rails3(至少)有一个 config.log_path,我使用它并且工作得很好。但如果没有您的(实际上非​​常明智的)解决方案,我不会找到 :)
    • 如你所愿。您也可以使用 config.logger 配置更改您的记录器。以 Syslogger 为例。把你的发现放在答案上。这样更好。
    • 实际上,这些配置属性是否有规范的信息来源?到目前为止我还没有找到一个全面的...
    • 根据 Rails 官方文档 (guides.rubyonrails.org/…),这是正确的做法。
    • 在 Rails 4 中,这应该是 config.logger = ActiveSupport::Logger.new(File.join(ENV['SOME_ENVIRONMENT_VAR'], "var/output/logs/rails.log"))(似乎 BufferedLogger 已被删除)。
    【解决方案2】:

    config.log_path 设置已被弃用 - 现在推荐的解决方案是:

    config.paths.log = "/some/path/#{Rails.env}.log"

    【讨论】:

    • 此语法似乎不正确。在配置块中,如果您执行 config.paths['logfile'] = '...' 似乎正确但 LogTailer 仍然抱怨。
    • 对我来说,@aceofspades 建议的config.paths['log'](下面,不是logfile)工作得很好。
    【解决方案3】:

    从 Rails 3.2.3 开始,日志路径名似乎也在 Rails::Rack::LogTailer#initialize 中定义,并且来自 Rails::Server#log_path。

    LOG_PATH = "log/mylog.log"
    
    require 'rails/commands/server'
    module Rails
      class Server
        def log_path
          LOG_PATH
        end
      end
    end
    
    class Application < Rails::Application
      ...
      config.paths['log'] = LOG_PATH
      ...
    end
    

    【讨论】:

      猜你喜欢
      • 2014-09-19
      • 2013-11-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多