unicornのloggerを変更する
なんでこんな記事を
unicornのloggerを変更したくて"unicorn logger"で検索したら船が出てくるので。
船をgoogle検索から除きたい場合は"-ship"とつけて検索してください。
ソースを読む
debug info warn error fatalが実装されてるオブジェクトを設定すればいい
デフォルトのロガーはconfiguratorのDEFAULTSにある通りLogger.new($stderr)
実装する
unicornに読み込ませる設定ファイルを作成する。
config/unicorn.rb
require 'json' class MyLogger < Logger def format_message(severity, timestamp, progname, msg) JSON.dump({severity: severity, timestamp: timestamp, progname: progname, msg: msg}) + "\n" end end logger MyLogger.new(STDOUT)
今回は適当に標準出力にJSON形式のログを出力するようにしました。
実行結果
コマンド
bundle exec unicorn_rails -p 8080 -c config/unicorn.rb
結果
{"severity":"INFO","timestamp":"2019-07-14 22:54:32 +0900","progname":null,"msg":"listening on addr=0.0.0.0:8080 fd=9"} {"severity":"INFO","timestamp":"2019-07-14 22:54:32 +0900","progname":null,"msg":"worker=0 spawning..."} {"severity":"INFO","timestamp":"2019-07-14 22:54:32 +0900","progname":null,"msg":"master process ready"} {"severity":"INFO","timestamp":"2019-07-14 22:54:32 +0900","progname":null,"msg":"worker=0 spawned pid=88745"} {"severity":"INFO","timestamp":"2019-07-14 22:54:32 +0900","progname":null,"msg":"Refreshing Gem list"} {"severity":"INFO","timestamp":"2019-07-14 22:54:35 +0900","progname":null,"msg":"worker=0 ready"}
できた。