🔧
RailsでのMiniMagickのデバッグ方法
小ネタです。書きかけのメモを発掘したので修正して公開しておきます。
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