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
のように実行できます。