Class: Buzztools::ConsoleLogger

Inherits:
Object
  • Object
show all
Defined in:
lib/buzztools/extras/logging.rb

Overview

Logger that mostly works like a STDOUT logger, except that warnings and above get sent to STDERR instead

Defined Under Namespace

Classes: ReportFormatter

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(aErrLevel = Severity::WARN) ⇒ ConsoleLogger

Returns a new instance of ConsoleLogger.



65
66
67
68
69
70
71
72
73
# File 'lib/buzztools/extras/logging.rb', line 65

def initialize(aErrLevel = Severity::WARN)
  super(STDOUT)
  self.formatter = ReportFormatter.new
  self.level = Severity::INFO
  self << "\n"
  @err_logger = Logger.new(STDERR)
  @err_level = aErrLevel
  @err_logger.formatter = ReportFormatter.new
end

Instance Attribute Details

#formatterObject



76
77
78
# File 'lib/buzztools/extras/logging.rb', line 76

def formatter
  @formatter ||= Logger::Formatter.new
end

Instance Method Details

#<<(msg) ⇒ Object



94
95
96
97
98
99
100
101
102
103
# File 'lib/buzztools/extras/logging.rb', line 94

def <<(msg)
dev = if self.class.superclass==ActiveSupport::BufferedLogger
  @log_dest
else
  @logdev
end
  unless dev.nil?
    dev.write(msg)
  end
end

#add(severity, message = nil, progname = nil, &block) ⇒ Object Also known as: log



84
85
86
87
88
89
90
# File 'lib/buzztools/extras/logging.rb', line 84

def add(severity, message = nil, progname = nil, &block)
  if severity >= @err_level
    block_given? ? @err_logger.add(severity, message, progname, &block) : @err_logger.add(severity, message, progname)
  else
    block_given? ? orig_add(severity, message, progname, &block) : orig_add(severity, message, progname)
  end
end

#closeObject



106
107
108
109
110
111
112
# File 'lib/buzztools/extras/logging.rb', line 106

def close
  begin
    @logdev.close if @logdev
  ensure
    @err_logger.close
  end
end

#orig_addObject



82
# File 'lib/buzztools/extras/logging.rb', line 82

alias_method :orig_add, :add