【问题标题】:Create a custom Rails Logger创建自定义 Rails 记录器
【发布时间】:2013-01-18 14:18:41
【问题描述】:

这是过时的吗? 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")

我把这段代码放在我的 environment.rb 文件中,我得到了这个:

未初始化的常量 Log4r (NameError)

..然后它说'或者在初始化部分,添加以下任何内容:'

config.logger = Logger.new(STDOUT)
config.logger = Log4r::Logger.new("Application Log")

我的 environment.rb 文件中没有初始化程序部分! 我得到同样的错误!

上面写着“如果您愿意,您也可以替换另一个记录器,例如 Log4r。” 为什么有人要替换现有的记录器?

我从 environment.rb 文件中删除了 Rails.logger = Log4r::Logger.new("Application Log")。 它似乎正在工作,但我期待在 log/ 目录中创建一个文件,但什么也没有。这是我的 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!

帮助?请解释一下?

【问题讨论】:

  • 您是否将 log4r 添加到您的 Gemfile 中?

标签: ruby-on-rails ruby ruby-on-rails-3.2


【解决方案1】:

您可以通过以下方式全局设置 Rails 记录器:

Rails.logger = ...

或者您可以将其放入环境文件中,例如在config/environments/development.rb

MyApp::Application.configure do
  config.logger = ...
end

接下来,Log4r 是 Rails 不附带的独立 gem。如果您想使用它,请将其添加到您的 Gemfile:

gem "log4r", "~> 1.1.10"

为什么有人要替换现有的记录器?

因为记录器有一组不同的功能。您可能希望使用自定义记录器将日志上传到外部服务、对其进行处理等。

【讨论】:

  • @TrtTrt 如果您对答案满意,请采纳。谢谢!
【解决方案2】:

您需要在 application.rb 中要求 log4r。我假设你已经安装了 gem。然后在application.rb中

 require 'log4r'

【讨论】:

    猜你喜欢
    • 2017-12-23
    • 2013-01-09
    • 1970-01-01
    • 1970-01-01
    • 2011-09-08
    • 2022-10-15
    • 1970-01-01
    • 2018-09-12
    • 1970-01-01
    相关资源
    最近更新 更多