Logging 在Rails 4中使用记录器

Logging 在Rails 4中使用记录器,logging,ruby-on-rails-4,Logging,Ruby On Rails 4,我正在从事一个Rails 4项目,当我调用Rails.logger.debug“test”时,我似乎无法在我的开发日志中显示任何内容。我尝试过在线搜索,但我觉得我没有取得多大进展。我如何设置一个记录器并告诉它写入我的开发日志文件 任何帮助都将不胜感激 我认为你应该在你的方法中这样使用它。在这里结账 如果要在普通的旧Ruby对象或ServiceObject中使用Rails.logger,则需要手动将其包括在内: class MyService def initialize(foo) @

我正在从事一个Rails 4项目,当我调用
Rails.logger.debug“test”
时,我似乎无法在我的开发日志中显示任何内容。我尝试过在线搜索,但我觉得我没有取得多大进展。我如何设置一个记录器并告诉它写入我的开发日志文件


任何帮助都将不胜感激

我认为你应该在你的方法中这样使用它。在这里结账


如果要在普通的旧Ruby对象或
ServiceObject
中使用
Rails.logger
,则需要手动将其包括在内:

class MyService
  def initialize(foo)
    @logger = Logger.new(STDOUT)
    @foo = foo
  end

  def call
    do_something
  end

  private

  def do_something
    @logger.debug { "do_something called! With #{@foo.class} class" }
  end
end
结果:

MyService.new(Bar.new).call
# [2018-01-27T00:17:22.167974 #57866] DEBUG -- : do_something called! With Bar class

rails有一个简单的日志记录机制

从内部控制器/模型

logger.info 'some info'
logger.error 'some error'
等等

在这些Rails的部分之外,在普通的Ruby对象中,例如服务对象、库对象,您可以轻松地访问相同的默认记录器

对于小于3的轨道

logger = RAILS_DEFAULT_LOGGER
logger.info 'some info'
logger.error 'some error'
对于大于3的轨道

logger = Rails.logger
logger.info 'some info'
logger.error 'some error'

如果日志文件中未显示任何记录器输出,则检查环境文件(config/environments/development.rb,…)中已设置的日志级别值 它应该不在那里(默认为:debug)或者

应该设置。其他值包括:

:debug, :info, :warn, :error, :fatal, :unknown
更多信息请点击此处: 第2.2节日志级别

config.log_level = :debug
:debug, :info, :warn, :error, :fatal, :unknown