我正在 Sinatra 中创建我的第一个应用程序,但我遇到了日志记录问题。我在这里阅读了一些关于登录 Sinatra 的主题,多亏了它们,我可以记录请求,但在我的日志文件中看不到错误堆栈——它们只显示在控制台中。
这是我到目前为止所得到的:
应用程序.rb
require 'rubygems'
require 'bundler'
Bundler.require(:default, ENV['RACK_ENV'].to_sym)
require 'sinatra/base'
require 'sinatra/config_file'
require 'sinatra/partial'
class App < Sinatra::Base
configure do
enable :sessions, :logging, :partial_underscores, :dump_errors, :raise_errors
log_file = File.new("#{settings.root}/log/#{settings.environment}.log", 'a+')
log_file.sync = true
use Rack::CommonLogger, log_file
set :root, File.dirname(__FILE__)
set :logger_level, :info
set :logger_log_file, File.join(File.dirname(__FILE__), "/log/#{environment}.log")
helpers do
def logger
@logger ||= begin
@logger = ::Logger.new(self.class.logger_log_file)
@logger.level = ::Logger.const_get((self.class.logger_level || :warn).to_s.upcase)
@logger.datetime_format = "%Y-%m-%d %H:%M:%S"
@logger
end
end
end
end
error do
logger.error env['sinatra.error'].message
redirect to('500.html')
end
end
当我设置
get '/' do
raise 'some test error'
end
堆栈跟踪仅在控制台中显示。任何想法我做错了什么?