読者です 読者をやめる 読者になる 読者になる

ClassX::Role::Logger

ClassXなクラスにこいつをincludeしてやると、標準ライブラリのloggerがattributeとして使えるようになります。

require 'classx/role/logger'
class YourApp
  include ClassX
  extends ClassX::Commandable
  include ClassX::Role::Logger
  
  def run
    self.logger.debug("debug!!")
    # do something
  end
end

別のModuleでattributeを定義してそいつをClassXなクラスにMixinしてやるというのはそのクラスのattributeが何かわかりづらくなりがちですが、loggerみたいな定番のものだと、だいたい意味がわかるので、よいですね。

それからClassX::Commandableと合わせて使うと便利で、

   
$ your_app.rb --logfile log/debug.log --log_level debug

のように実行できます。