🔧

RailsでのMiniMagickのデバッグ方法

2022/02/11に公開

小ネタです。書きかけのメモを発掘したので修正して公開しておきます。

Railsでの画像処理については、ActiveStorageがImageProcessing gemを推奨しており、ImageProcessingはMiniMagick(とruby-vips)を使用していることもあり、MiniMagickがよく使われているかと思います。

ところがMiniMagickは、いろんな問題で上手く動かない場合があります。しかも、ImageProcessingやCarrierWaveのような別のライブラリから暗黙で呼ばれている場合には、そのデバッグがやりづらかったりします。

そのような場合のために、MiniMagickではロガーを設定できます。RailsからMiniMagickを使う場合、RailsのロガーにMiniMagickの出力を加えるようにするとログを一元化できます。

MiniMagickのロガー設定方法

config/application.rb に以下を追加します(config/initializers/*.rbでもいいかもです)。

require 'mini_magick'

MiniMagick.configure do |config|
  config.logger = Rails.logger
  config.cli = :imagemagick7 # or :graphicsmagick or :imagemagick or :imagemagick7
  config.logger.level = Logger::DEBUG
end

内容はおおよそ見てのとおりかと思います。詳しい設定は MiniMagickのREADME に書いてある…と思ったけどあまり詳しくはないですね…。

MiniMagick::Configurationのドキュメントconfiguration.rbを見るのも役立ちそうです。ご参考まで。

Discussion