代码之家  ›  专栏  ›  技术社区  ›  Romain

如何更改Rails3.0的默认日志路径?

  •  9
  • Romain  · 技术社区  · 14 年前

    在Rails 2.x中,我们在FCGI脚本中添加了一些黑魔法,以便在部署到prod.hosts上时强制执行:

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

    然而,在Rails 2.3中,配置不再是一个类(它是一个模块),在我看来,这里不再包含任何默认的日志路径了。。。

    3 回复  |  直到 11 年前
        1
  •  8
  •   Romain    11 年前

    你只需要定义你的记录器

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

    这个技巧也适用于Rails 2。您还可以按环境定义您真正需要日志文件的位置。

        2
  •  8
  •   pmontrasio    11 年前

    config.log_path 设置已被弃用-建议的解决方案是:

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

        3
  •  5
  •   aceofspades    11 年前

    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