Rails: Logging for code in the lib directory?

前端 未结 2 1500
野的像风
野的像风 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.

    0 讨论(0)
  • 2021-01-31 15:36

    We can use Rails logger directly into the lib, see the following snippet.

    require 'logger'
    
    Rails.logger.info "Hay..!!! Im in lib"
    Rails.logger.debug "Debugging this object from Lib #{object.inspect}"
    Rails.logger.error "This is an error..."
    
    0 讨论(0)
提交回复
热议问题