ruby-on-rails – 如何更改Rails 3.0的默认日志路径?

由于我公司的内部软件部署过程,我必须更改我的铁路应用程序的默认日志路径:基本上我的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.并且您可以根据环境定义真正需要日志文件的位置.

相关文章

以下代码导致我的问题: class Foo def initialize(n=0) @n = n end attr_accessor :n d...
这是我的spec文件,当为上下文添加测试“而不是可单独更新用户余额”时,我得到以下错误. require 's...
我有一个拦截器:DevelopmentMailInterceptor和一个启动拦截器的inititializer setup_mail.rb. 但我想将...
例如,如果我有YAML文件 en: questions: new: 'New Question' other: recent: ...
我听说在RSpec中避免它,let,let !,指定,之前和主题是最佳做法. 关于让,让!之前,如果不使用这些,我该如...
我在Rails中使用MongoDB和mongo_mapper gem,项目足够大.有什么办法可以将数据从Mongoid迁移到 Postgres...