由于我公司的内部软件部署过程,我必须更改我的铁路应用程序的默认日志路径:基本上我的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(它是一个模块)中,配置不再是一个类,在我看来,还没有任何一个default_log_path,还有…
解决方法
你只需要定义你的记录器
config.logger = ActiveSupport::BufferedLogger.new(File.join(ENV['SOME_ENVIRONMENT_VAR'],"var/output/logs/rails.log"))
这个技巧也适用于Rails 2.并且您可以根据环境定义真正需要日志文件的位置.