59

我正在做一个 Rails 4 项目,当我打电话时,我似乎无法在我的开发日志中显示任何内容。我Rails.logger.debug "test"尝试在线搜索,但我觉得我没有取得太大进展。我将如何设置记录器并告诉它写入我的开发日志文件?

任何帮助将不胜感激。

4

4 回答 4

79

我认为你应该在你的方法中这样使用它。在此处查看第 2.3 节

def your_method  
  logger.debug "This is from debug"
  logger.info "This is from info"
end
于 2013-07-20T16:16:25.850 回答
8

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

从内部控制器/模型

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

等等

从这些 Rails 的部分之外,在 Plain Old 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'
于 2018-09-05T11:19:48.947 回答
1

如果您想Rails.logger在普通旧 Ruby 对象或中使用ServiceObject,则需要手动包含它:

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
于 2018-01-27T08:31:12.393 回答
0

如果您的日志文件中没有出现记录器输出,请检查您的环境文件(config/environments/development.rb,...)中设置的 log_level 值是否存在(默认为:debug)或

config.log_level = :debug

应该设置。其他值是:

:debug, :info, :warn, :error, :fatal, :unknown

更多信息在这里: https ://guides.rubyonrails.org/debugging_rails_applications.html 第 2.2 节日志级别

于 2018-09-05T15:05:15.883 回答