Sha256: 73a2dd4631b3d0bf3f8992ee32b0630803a499ca4de1c97bcf8345cedc214634

Contents?: true

Size: 1.59 KB

Versions: 2

Compression:

Stored size: 1.59 KB

Contents

require 'logger'

# see http://hawkins.io/2013/08/using-the-ruby-logger/

module TlaParserS
  
  module Utils
    
    module MyLogger

      # no logging done

      class NullLoger < Logger
        def initialize(*args)
        end

        def add(*args, &block)
        end

        def debug?
          false
        end
      end

      @@logfile = nil                          # absolute path to log file
      LOGFILE="tla-parser-s.log"

      def logfile( options )
        return @@logfile if @@logfile
        @@logfile = options[:logfile] || File.join( Dir.getwd, LOGFILE )
      end

      def getLogger( progname, options={} ) 

        level = get_level( options )

        if level.nil? 

          return NullLoger.new 

        else
          
          logger = Logger.new( logfile( options ) )
          logger.level=level
          logger.progname = progname
          return logger

        end 

      end # getLogger

      # ------------------------------------------------------------------
      private

      def get_level( options ) 

        # puts  "#{__method__}: options=#{options}" 

        level_name = options && options[:log] ? options[:log] : ENV['LOG_LEVEL']

        level = case  level_name
                when 'warn', 'WARN'
                  Logger::WARN
                when 'info', 'INFO'
                  Logger::INFO
                when 'debug', 'DEBUG'
                  Logger::DEBUG
                when 'error', 'ERROR'
                  Logger::ERROR
                else
                  nil
                end

        return level
      end

    end

  end 
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
tla-parser-s-0.1.2 lib/utils/logger.rb
tla-parser-s-0.1.0 lib/utils/logger.rb