我是 Ruby 和 Sinatra 的新手,并试图访问闭包 ( ) 中的记录器对象。EM.run do .. end
这是从工作代码中提取的,其中带有消息“LOGGER IS NOT ACCESSIBLE HERE”的日志记录语句给出编译错误。
class Connection
def get_updates
logger.info "LOGGER IS NOT ACCESSIBLE HERE 1"
end
end
class Streamer < Sinatra::Base
def stream
logger.info "Inside stream"
EM.run do
logger.info "LOGGER IS NOT ACCESSIBLE HERE 3"
Connection.new.get_updates
EM::PeriodicTimer.new(10) do
logger.info "LOGGER IS NOT ACCESSIBLE HERE 4"
end
end
end
end
get '/' do
logger.info "loading data"
Streamer.new.stream
end
从我发现 Sinatra 使用的文档env['rack.logger']
中。我们如何在上述代码中的非 Sinatra 类中使用相同的类,如 Connection 和 Streamer?