【Datadog】【Rails】Railsのログを出力するとき「日付とプロセスID、リクエストID」を出力されないようにする
はじめに
Webサービスの開発でDatadogのLog Managementを使うときの小ネタ。
lograge
というライブラリを使い、Datadog Logsにログを転送していたのですが
標準ログ+JSONという形になってしまいLogsで自動で解析してもらえなくなってしまった。
なので、標準ログも含めたい場合JSONの中に入れてやると良いです。
環境
- macOS Sierra
- Docker(docker-compose)
- Ruby 2.6.3
- Ruby on Rails 5.2.2
- lograge 0.10.0
前提条件
lograge
を使って何かしらログが出力されていること。
調査
lograge
でJSON化したにも関わらず、日付とプロセスID、リクエストIDが出てしまう。
I, [2020-08-24T15:54:36.321933 #1] INFO -- : [95a6f86c-c6ca-45fa-a9e9-1e6ee241d034] .... 以下略
原因と解決方法
制御しているのは /enviroment/production.log
にありました。
# Prepend all log lines with the following tags. config.log_tags = [:request_id] # Use default logging formatter so that PID and timestamp are not suppressed. config.log_formatter = ::Logger::Formatter.new
これを無効にすれば出力されなくなります。
まとめ
これで本番環境で正常にDatadogでログが解析できるようになりました。