これはなに
Sinatraのロギングについて調べたのでまとめる。
Sinatraのバージョンは2.2.2
ロギングを有効にする
Sinatraのロギング設定はクラシックアプリケーションでは有効でモジューラアプリケーション(Sinatra::Base
クラス)では無効となっている。
そのため、モジューラアプリケーションの場合は以下のように設定する必要がある。
app.rb
require 'sinatra'
class App < Sinatra::Base
configure :development, :production do
enable :logging
end
end
↑のように設定することでRack::CommonLogger
のログがWebサーバー側のログに出力されるようになる。
ただ、STDERR
にログが出力されるため注意が必要。
別のファイルに書き込むようにしたい場合は、自分でRack::CommonLogger
ミドルウェアを設定する必要がある様。(↓のブログを参照)
また、任意のログを出力したい場合は、以下のようにlogger
を設定することでログを出力できる。
以下はSTDOUT
に出力する例。
app.rb
require 'sinatra'
require 'sinatra/custom_logger'
require 'logger'
class App < Sinatra::Base
helpers Sinatra::CustomLogger
configure :development, :production do
logger = Logger.new($stdout)
set :logger, logger
end
get '/' do
logger.info('Logging!')
'hello world'
end
end