LoginSignup
0

posted at

updated at

Organization

Sinatraのロギングを設定する

これはなに

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

Refs

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
0