Class: Semlogr::Events::LogEvent

Inherits:
Object
  • Object
show all
Defined in:
lib/semlogr/events/log_event.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(severity, template, error: nil, **properties) ⇒ LogEvent

Returns a new instance of LogEvent.


15
16
17
18
19
20
21
# File 'lib/semlogr/events/log_event.rb', line 15

def initialize(severity, template, error: nil, **properties)
  @timestamp = Time.now.utc
  @severity = severity
  @template = template
  @error = error
  @properties = properties
end

Instance Attribute Details

#errorObject (readonly)

Returns the value of attribute error.


11
12
13
# File 'lib/semlogr/events/log_event.rb', line 11

def error
  @error
end

#propertiesObject (readonly)

Returns the value of attribute properties.


12
13
14
# File 'lib/semlogr/events/log_event.rb', line 12

def properties
  @properties
end

#severityObject (readonly)

Returns the value of attribute severity.


9
10
11
# File 'lib/semlogr/events/log_event.rb', line 9

def severity
  @severity
end

#templateObject (readonly)

Returns the value of attribute template.


10
11
12
# File 'lib/semlogr/events/log_event.rb', line 10

def template
  @template
end

#timestampObject (readonly)

Returns the value of attribute timestamp.


13
14
15
# File 'lib/semlogr/events/log_event.rb', line 13

def timestamp
  @timestamp
end

Class Method Details

.create(severity, template, properties) ⇒ Object


23
24
25
26
27
# File 'lib/semlogr/events/log_event.rb', line 23

def self.create(severity, template, properties)
  template = Templates::Parser.parse(template)

  LogEvent.new(severity, template, properties)
end

Instance Method Details

#add_property(properties) ⇒ Object


33
34
35
# File 'lib/semlogr/events/log_event.rb', line 33

def add_property(properties)
  @properties.merge!(properties)
end

#add_property_if_absent(properties) ⇒ Object


37
38
39
# File 'lib/semlogr/events/log_event.rb', line 37

def add_property_if_absent(properties)
  @properties.merge!(properties) { |_, old, _| old }
end

#get_property(name) ⇒ Object


29
30
31
# File 'lib/semlogr/events/log_event.rb', line 29

def get_property(name)
  @properties[name]
end

#render(output) ⇒ Object


41
42
43
# File 'lib/semlogr/events/log_event.rb', line 41

def render(output)
  @template.render(output, @properties)
end

#to_sObject


49
50
51
52
53
54
55
# File 'lib/semlogr/events/log_event.rb', line 49

def to_s
  output = +''

  render(output)

  output
end

#typeObject


45
46
47
# File 'lib/semlogr/events/log_event.rb', line 45

def type
  @type ||= Digest::XXH32.hexdigest(@template.text)
end