5
0

More than 1 year has passed since last update.

Sinatraのロギングを設定する

Last updated at Posted at 2022-07-24

これはなに

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

5
0
0

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
  3. You can use dark theme
What you can do with signing up
5
0