Class: LeapCli::Logger

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

Instance Method Summary collapse

Constructor Details

#initialize(options = {}) ⇒ Logger

Returns a new instance of Logger.



40
41
42
43
44
# File 'lib/leap_cli/logger.rb', line 40

def initialize(options={})
  @options = options
  @level = options[:level] || 0
  @message_buffer = nil
end

Instance Method Details

#log(level, message, line_prefix = nil, options = {}) ⇒ Object



46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
# File 'lib/leap_cli/logger.rb', line 46

def log(level, message, line_prefix=nil, options={})
  if message !~ /\n$/ && level <= 2 && line_prefix.is_a?(String)
    # in some cases, when the message doesn't end with a return, we buffer it and
    # wait until we encounter the return before we log the message out.
    @message_buffer ||= ""
    @message_buffer += message
    return
  elsif @message_buffer
    message = @message_buffer + message
    @message_buffer = nil
  end

  options[:level] ||= level
  [:stdout, :log].each do |mode|
    LeapCli::log_raw(mode) do
      message_lines(mode, message, line_prefix, options)
    end
  end
end