【Rails】ActiveModelSerializersのログを出力しないようにする

はじめに

Webサービスを開発していて、気づいたことがあったのでメモ

環境

前提条件

active_model_serializers を使って何かしらレスポンスが返されるようになっていること

調査

Datadogでログを確認していたところ以下のようなログが出力されていた。

[active_model_serializers] Rendered ActiveModel::Serializer::CollectionSerializer with ActiveModelSerializers::Adapter::Json (103.91ms)

原因

ドキュメントを確認すると ActiveModelSerializers でデフォルト出力することがわかりました。
https://github.com/rails-api/active_model_serializers/blob/a032201a91cbca407211bca0392ba881eef1f7ba/lib/active_model_serializers.rb#L19

解決方法

config/environments/production.rb に以下の通り記述すれば出力されなくなります。

Rails.application.configure do
  # Disable ActiveModelSerializers Logging
  ActiveSupport::Notifications.unsubscribe(ActiveModelSerializers::Logging::RENDER_EVENT)
end

まとめ

これで本番環境で不要なログが表示されないようになりました。

参考

ruby on rails - Remove log message in active-model-serializers - Stack Overflow