Class: PEdump::Logger

Inherits:
Logger
  • Object
show all
Defined in:
lib/pedump/logger.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(*args) ⇒ Logger

Returns a new instance of Logger.



5
6
7
8
9
10
11
12
13
14
15
16
17
# File 'lib/pedump/logger.rb', line 5

def initialize *args
  super
  @formatter = proc do |severity,_,_,msg|
    # quick and dirty way to remove duplicate messages
    if @prevmsg == msg && severity != 'DEBUG' && severity != 'INFO'
      ''
    else
      @prevmsg = msg
      "#{msg}\n"
    end
  end
  @level = WARN
end

Class Method Details

.create(params) ⇒ Object



20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/pedump/logger.rb', line 20

def Logger.create params
  logger =
    if params[:logger]
      params[:logger]
    else
      logdev = params[:logdev] || STDERR
      logger_class =
        if params.key?(:color)
          # forced color or not
          params[:color] ? ColoredLogger : Logger
        else
          # set color if logdev is TTY
          (logdev.respond_to?(:tty?) && logdev.tty?) ? ColoredLogger : Logger
        end
      logger_class.new(logdev)
    end

  logger.level = params[:log_level] if params[:log_level]
  logger
end