module RailFeeds::Logging

A Module to provide a global logger

Public Class Methods

formatter() click to toggle source
# File lib/rail_feeds/logging.rb, line 43
def self.formatter
  proc do |severity, datetime, progname, message|
    "#{datetime} #{"#{progname} " unless progname.nil?}#{severity}: #{message}\n"
  end
end
included(base) click to toggle source
# File lib/rail_feeds/logging.rb, line 6
def self.included(base)
  class << base
    # Provide a logger 'attribute' to a class which defaults to the class logger.
    def logger
      @logger || Logging.logger
    end

    # rubocop:disable Style/TrivialAccessors
    def logger=(logger)
      @logger = logger
    end
    # rubocop:enable Style/TrivialAccessors
  end
end
logger() click to toggle source

Global, memoized, lazy initialized instance of a logger

# File lib/rail_feeds/logging.rb, line 31
def self.logger
  @logger ||= Logger.new(
    STDOUT,
    formatter: formatter,
    level: Logger::DEBUG
  )
end
logger=(logger) click to toggle source
# File lib/rail_feeds/logging.rb, line 39
def self.logger=(logger)
  @logger = logger
end

Public Instance Methods

logger() click to toggle source

Provide a logger attribute to an instance which defaults to the global logger.

# File lib/rail_feeds/logging.rb, line 22
def logger
  @logger || self.class.logger
end
logger=(logger) click to toggle source
# File lib/rail_feeds/logging.rb, line 26
def logger=(logger)
  @logger = logger
end