在Rails 4中使用logger

时间:2013-07-19 15:24:13

标签: logging ruby-on-rails-4

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

非常感谢任何帮助。

4 个答案:

答案 0 :(得分:69)

我认为你应该在你的方法中使用它。结帐section 2.3此处

def your_method  
  logger.debug "This is from debug"
  logger.info "This is from info"
end

答案 1 :(得分:2)

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'

答案 2 :(得分:1)

如果要在普通旧Ruby对象或Rails.logger中使用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

答案 3 :(得分:0)

如果您的日志文件中没有记录器输出,则检查您的环境文件中已将log_level设置为什么值(config / environments / development.rb,...) 它应该不在那里(默认为:debug)或

config.log_level = :debug

应设置。其他值是:

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

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