Flo*_*nt2 6 ruby logging sinatra
我有以下Sinatra 1.2.1应用程序代码:
# app.rb
require 'sinatra'
get '/' do
logger.info "COUCOU"
'Hello world!'
end
Run Code Online (Sandbox Code Playgroud)
然后启动服务器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
Run Code Online (Sandbox Code Playgroud)
我是否需要添加或配置某些内容才能在Sinatra中启用日志记录?阅读Sinatra README和文档,默认情况下启用日志记录Sinatra::Application.
问题在于找不到写入方法,只需这样扩展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
Run Code Online (Sandbox Code Playgroud)