Sinatraでログをファイルに保存する方法
タグ: sinatra / 初版公開: 2014-04-29

SinatraでRack::CommonLoggerを使ってアクセスログを取る方法のメモ。 アプリケーションに以下を記述する。

configure do
  enable :logging
  file = File.new("#{settings.root}/log/#{settings.environment}.log", 'a+')
  file.sync = true
  use Rack::CommonLogger, file
end

ロギングを有効にするためにenable :loggingする。 Sinatra::Baseを継承しないクラシックスタイルアプリケーションの場合は、デフォルトでロギングが有効なので、この1行は必要ない。

続いてログを出力したいファイルをオープンする。 ログは即座にファイルに書き出したいためfile.sync = trueしておく。

最後にuse Rack::CommonLoggerで開いたファイルを渡してロガーを初期化してやればok。

参考