Rails: Logging for code in the lib directory?

前端 未结 2 1501
野的像风
野的像风 2021-01-31 14:48

What is the best/easiest way to configure logging for code kept in the lib directory?

2条回答
  •  再見小時候
    2021-01-31 15:22

    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 an config.after_initialize block in config/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.

提交回复
热议问题