Rom*_*ain 10 logging ruby-on-rails ruby-on-rails-3
由于我公司的内部软件部署过程,我必须更改我的铁路应用程序的默认日志路径:基本上我的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
Run Code Online (Sandbox Code Playgroud)
但是,在Rails 2.3(它是一个模块)中,Configuration不再是一个类了,在我看来,不再有任何default_log_path了...
您只需要定义记录器
config.logger = ActiveSupport::BufferedLogger.new(File.join(ENV['SOME_ENVIRONMENT_VAR'], "var/output/logs/rails.log"))
Run Code Online (Sandbox Code Playgroud)
这个技巧也适用于Rails 2.您可以根据环境定义您真正想要的日志文件.
小智 8
该config.log_path设置已被弃用 - 现在推荐的解决方案是:
config.paths.log = "/some/path/#{Rails.env}.log"
从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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13471 次 |
| 最近记录: |