LTSV ロガーを自作して Rails アプリで使ってみた

WEB+DB PRESS Vol.74 の LTSV 特集を読んで LTSV 熱が高まったので、Ruby 用の LTSV ロガーを作って、Rails アプリに組み込んでみた。

LTSV フォーマットでログを出力するライブラリは既にいろんな人が公開しているから、車輪の再発明になってしまったな。

Rack ミドルウェア版は gem が見当たらなかったんで作ってみたけど、Rack::CommonLogger のソースを参考にしたから難しいことやってない。

Rails で使うには、まず Gemfile に追加して

gem "logger-ltsv", require "logger/ltsv"
gem "rack-ltsvlogger", require "rack/ltsvlogger"

config/environments の development.rb や production.rb で、LTSV ロガーを使うように設定すればいい。

  # LTSV フォーマットでログを出力する
  config.logger = LTSVLogger.new($stdout)

  # Rack のログを LTSV フォーマットで出力する
  config.middleware.insert_before(Rails::Rack::Logger, Rack::LTSVLogger, $stdout)
  config.middleware.delete(Rails::Rack::Logger)

今回は Heroku にデプロイするんで、ログは標準出力に出力してみた。

WEB+DB PRESS Vol.74

WEB+DB PRESS Vol.74