Class: Madvertise::Logging::DocumentLogger

Inherits:
Logger
  • Object
show all
Defined in:
lib/madvertise/logging/document_logger.rb

Overview

DocumentLogger is a Logger compliant class that keeps a structured document per log message in memory.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeDocumentLogger

Returns a new instance of DocumentLogger.



15
16
17
18
19
# File 'lib/madvertise/logging/document_logger.rb', line 15

def initialize
  super(nil)
  @messages = []
  @attrs = {}
end

Instance Attribute Details

#attrsObject

Returns the value of attribute attrs.



12
13
14
# File 'lib/madvertise/logging/document_logger.rb', line 12

def attrs
  @attrs
end

#messagesObject

Returns the value of attribute messages.



13
14
15
# File 'lib/madvertise/logging/document_logger.rb', line 13

def messages
  @messages
end

Instance Method Details

#add(severity, message = nil, progname = nil, &block) ⇒ Object



21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# File 'lib/madvertise/logging/document_logger.rb', line 21

def add(severity, message = nil, progname = nil, &block)
  severity ||= UNKNOWN
  if severity < @level
    return true
  end

  progname ||= @progname

  if message.nil?
    if block_given?
      message = yield
    else
      message = progname
      progname = @progname
    end
  end

  @messages << @attrs.merge({
    severity: severity,
    time: Time.now.to_f,
    progname: progname,
    message: message,
  })

  true
end