为保存在lib目录中的代码配置日志(log)记录的最佳/最简单的方法是什么?

推荐答案

有两种方法:

  • 假设您的库是自包含的,并且有一个模块,您可以向模块添加一个logger属性,并在库代码的任何地方使用它.

    module MyLibrary
      mattr_accessor :logger
    end
    

    然后使用config/initializers/中的初始值设定项或config/environment.rb中的config.after_initialize块来初始化记录器,如下所示:

    require 'mylibrary'
    MyLibrary.logger = Rails.logger
    

    这仍然允许您从Rails之外的脚本中使用自包含的库.有时候这很好.

  • 如果在没有Rails的情况下使用库真的毫无意义,那么您也可以直接使用Rails.logger.

在这两种情况下,您都在处理一个标准的Ruby记录器.还要记住,理论上,记录器可能是nil.

Ruby-on-rails相关问答推荐

Ruby on Rails 7 与 React 集成

从 rails 5 迁移到 rails 6

Rails 4 强参数:允许所有属性?

带有 master.key 的 Rails 5.2 - Heroku 部署

Gem::LoadError: 无法激活 pg (~> 0.18),已经激活 pg-1.0.0

Rails:ENV.fetch() 和 ENV[] 之间的区别

Ruby中的`try`和`&.`(安全导航运算符)有什么区别

FactoryBot 工厂中的“临时执行”块的目的是什么?

Ruby 2.4 和 Rails 4 堆栈级别太深 (SystemStackError)

Rails 5:在生产中加载 lib 文件

为什么 Rails 5 使用 ApplicationRecord 而不是 ActiveRecord::Base?

Rails:验证两列的唯一性(一起)

ActiveRecord where field = ?可能值的数组

如何使用 Rspec 判断 ActiveJob 中排队的内容

将 Rails 应用程序更改为生产环境

如何在 Rails 4 中加载供应商assets资源 文件夹?

OpenSSL::SSL::SSLError: SSL_connect SYSCALL returned=5 errno=0 state=SSLv3 read server hello A

Ruby on Rails 控制台在加载时挂起

rspec 3 - 存根类方法

Rspec 3 如何测试闪存消息