gpt4 book ai didi

ruby-on-rails - 创建自定义 Rails 记录器

转载 作者:太空宇宙 更新时间:2023-11-03 17:36:42 25 4
gpt4 key购买 nike

这是过时了吗? 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 文件中,我得到了这个:

uninitialized constant Log4r (NameError)

..然后它说“或者在 Initializer 部分,添加以下任何内容:”

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!

帮助?请解释一下?

最佳答案

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

Rails.logger = ...

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

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

接下来,Log4r 是一个单独的 gem,它不包含在 Rails 中。如果你想使用它,将它添加到你的 Gemfile 中:

gem "log4r", "~> 1.1.10"

Why would somebody want to substitute an existing logger?

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

关于ruby-on-rails - 创建自定义 Rails 记录器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14400831/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com