There’s two ways to go about it:
-
Assuming your library is self-contained and has a module, you can add a
logger
attribute to your module and use that everywhere in your library code.module MyLibrary mattr_accessor :logger end
You then either use an initializer in
config/initializers/
, or anconfig.after_initialize
block inconfig/environment.rb
to initialize your logger, like so:require 'mylibrary' MyLibrary.logger = Rails.logger
This would still allow you to use your self-contained library from scripts outside of Rails. Which is nice, on occasion.
-
If using your library without Rails really doesn’t make sense at all, then you can also just use
Rails.logger
directly.
In either case, you’re dealing with a standard Ruby Logger. Also keep in mind that, in theory, the logger may be nil
.