Trt*_*Trt 1 ruby ruby-on-rails ruby-on-rails-3.2
这已经过时了吗? http://guides.rubyonrails.org/debugging_rails_applications.html 我正在一步一步地跟着它,
部分'2.1什么是记录器?'
它说明了如何创建自定义记录器.
1)您可以在environment.rb或任何环境文件中指定备用记录器:
Rails.logger = Logger.new(STDOUT)
Rails.logger = Log4r::Logger.new("Application Log")
Run Code Online (Sandbox Code Playgroud)
我把这段代码放在我的environment.rb文件中,我得到了这个:
未初始化的常量Log4r(NameError)
..然后它说'或者在初始化程序部分,添加以下任何内容:'
config.logger = Logger.new(STDOUT)
config.logger = Log4r::Logger.new("Application Log")
Run Code Online (Sandbox Code Playgroud)
我的environment.rb文件中没有初始化部分!我犯了同样的错误!
它说'如果你愿意,你也可以替换Log4r等其他记录器.' 为什么有人想替换现有的记录器?
我Rails.logger = Log4r::Logger.new("Application Log")从environment.rb文件中删除了.它似乎正在工作,但我期待在日志/目录中创建一个文件,但没有.这是我的enviroment.rb文件:
# Load the rails application
require File.expand_path('../application', __FILE__)
Rails.logger = Logger.new('Application Log')
# Initialize the rails application
MyApp::Application.initialize!
Run Code Online (Sandbox Code Playgroud)
救命?请问一些解释?
您可以使用以下命令全局设置Rails记录器:
Rails.logger = ...
Run Code Online (Sandbox Code Playgroud)
或者你可以把它放到一个环境文件中,例如在 config/environments/development.rb
MyApp::Application.configure do
config.logger = ...
end
Run Code Online (Sandbox Code Playgroud)
接下来,Log4r是一个没有Rails附带的独立gem.如果要使用它,请将其添加到Gemfile:
gem "log4r", "~> 1.1.10"
Run Code Online (Sandbox Code Playgroud)
为什么有人想替换现有的记录器?
因为记录器具有不同的功能集.您可能希望使用自定义记录器将日志上载到外部服务,处理它等.
| 归档时间: |
|
| 查看次数: |
1913 次 |
| 最近记录: |