Class: E2B::DefaultBuildLogger

Inherits:
Object
  • Object
show all
Defined in:
lib/e2b/template_logger.rb

Constant Summary collapse

DEFAULT_LEVEL =
"info"
LEVEL_ORDER =
{
  "debug" => 0,
  "info" => 1,
  "warn" => 2,
  "error" => 3
}.freeze

Instance Method Summary collapse

Constructor Details

#initialize(min_level: nil, io: $stdout) ⇒ DefaultBuildLogger

Returns a new instance of DefaultBuildLogger.



13
14
15
16
17
# File 'lib/e2b/template_logger.rb', line 13

def initialize(min_level: nil, io: $stdout)
  @min_level = min_level || DEFAULT_LEVEL
  @io = io
  @start_time = nil
end

Instance Method Details

#logger(log_entry) ⇒ Object



19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/e2b/template_logger.rb', line 19

def logger(log_entry)
  case log_entry
  when Models::TemplateLogEntryStart
    @start_time = Time.now
  when Models::TemplateLogEntryEnd
    @start_time = nil
  else
    return if LEVEL_ORDER.fetch(log_entry.level, LEVEL_ORDER[DEFAULT_LEVEL]) < LEVEL_ORDER[@min_level]

    @io.puts(format_log_line(log_entry))
  end
end