Sha256: 948a6c76a8a60bf05584788eea9462c3e0eb67ca31d0a47a7d3da2c5a4700956

Contents?: true

Size: 886 Bytes

Versions: 2

Compression:

Stored size: 886 Bytes

Contents

require 'log4r'

# Public: Logging module to mixin with classes.
#
#
module Logging

  def log
    @log ||= Logging.logger_for(self.class.name)
  end

  # Use a hash class-ivar to cache a unique Logger per class:
  @loggers = {}

  class << self
    include Log4r

    def logger_for(classname)
      @loggers[classname] ||= configure_logger_for(classname)
    end

    def configure_logger_for(classname)
      logger = Logger.new classname.to_s.gsub(/[^a-zA-Z0-9]/, '.').downcase.gsub(/\.+/, '.')

      # Log to file or stdout?
      if (ENV['LOG_OUTPUT_FILENAME'] && !ENV['LOG_OUTPUT_FILENAME'].empty?)
        puts ENV['LOG_OUTPUT_FILENAME']
        logger.outputters << Log4r::FileOutputter.new('linkedin2cvlog', :filename => ENV['LOG_OUTPUT_FILENAME'])
      elsif
        logger.outputters << Log4r::StdoutOutputter.new('linkedin2cvlog')
      end
      logger
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
linkedin2cv-0.0.2 lib/linkedin2cv/logging.rb
linkedin2cv-0.0.1 lib/linkedin2cv/logging.rb