Sha256: 75fff53669f718865061d5be2adf4676f014c3c2dd0551fc2ff979d7a8788108

Contents?: true

Size: 1.48 KB

Versions: 1

Compression:

Stored size: 1.48 KB

Contents

require "logger"

module BmcDaemonLib
  module LoggerHelper
    # Use accessor to expose logger to Grape, as it uses logger.*
    attr_accessor :logger

  protected

    def log_pipe pipe, caller = nil
      @log_pipe = pipe
      @logger = BmcDaemonLib::LoggerPool.instance.get(pipe)
      @caller = caller
    end

    def log_context
      {}      # ['DEFAULT', self.class.name.split('::').last]
    end

    def log_info message, details = nil
      log Logger::INFO, message, details
    end
    def log_error message, details = nil
      log Logger::ERROR, message, details
    end
    def log_debug message, details = nil
      log Logger::DEBUG, message, details
    end

  private

    def log severity, message, details
      return puts "LoggerHelper.log: missing logger (#{get_class_name})" unless logger
      # puts "LoggerHelper.log > #{message}"
      # puts "LoggerHelper.log     > #{get_full_context.inspect}"
      logger.add severity, message, get_full_context, details
    end

    def get_full_context
      # Grab the classe's context
      context = log_context()

      # Initialize an empty context, if log_context returned something else, or it the method was not exposed
      context = {} unless context.is_a? Hash

      # Who is the caller? Guess it from caller's class name if not provided
      context[:caller] ||= get_class_name

      # Return the whole context
      return context
    end

    def get_class_name
      self.class.name.to_s.split('::').last
    end

  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
bmc-daemon-lib-0.4.1 lib/bmc-daemon-lib/logger_helper.rb