我正在开发一个Rails 4项目,当我打电话Rails.logger.debug "test"
时,我似乎无法在我的开发日志中显示任何内容我尝试在网上搜索但我觉得我没有取得了很大进展。我如何设置记录器并告诉它在我的开发日志文件中写入?
非常感谢任何帮助。
答案 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节日志级别