我有以下Sinatra 1.2.1应用程序代码:
# app.rb
require 'sinatra'
get '/' do
logger.info "COUCOU"
'Hello world!'
end
并使用ruby -rubygems app.rb
启动服务器。当我转到http://localhost:4567时,我收到错误:
NameError at /
undefined local variable or method `logger' for #<Sinatra::Application:0x00000100d91f88>
file: app.rb location: block in <main> line: 4
我是否需要添加或配置某些内容以启用Sinatra中的日志记录?阅读Sinatra自述文件和文档,默认情况下,Sinatra::Application
启用了日志记录。
答案 0 :(得分:5)
问题在于找不到写入方法,只需以这种方式扩展Logger类,一切都应该没问题:
class Logger
# Make Rack::CommonLogger accept a Logger instance
# without raising undefined method `write' for #<Logger:0x007fc12db61778>
# makes a method alias using symbols
alias :write :<<
end
答案 1 :(得分:2)
您可能错过了logger = Logger.new
。
答案 2 :(得分:0)
记录器未定义,要克服它,您可以使用
Rails.logger.info "COUCOU"
或者像这样定义:
logger = Rails.logger.new
logger.info "COUCOU"