Class: Syslog::Message

Inherits:
Object
  • Object
show all
Defined in:
lib/syslog/message.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(str) ⇒ Message

Returns a new instance of Message.



18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/syslog/message.rb', line 18

def initialize(str)
  m = Syslog::Pattern::MESSAGE.match(str)
  fail(ArgumentError, 'Not a valid syslog message.') if m.nil?

  pri = m[:priority].to_i
  @facility = pri / 8
  @severity = pri % 8

  @version          = m[:version].to_i
  @datetime         = maybe_nil(m[:timestamp]) { |t| DateTime.parse(t) }
  @hostname         = maybe_nil(m[:hostname])
  @app_name         = maybe_nil(m[:app_name])
  @procid           = maybe_nil(m[:procid])
  @msgid            = maybe_nil(m[:msgid])
  @structured_data  = maybe_nil(m[:structured_data])
  @message          = m[:message]
end

Instance Attribute Details

#app_nameObject

Returns the value of attribute app_name.



7
8
9
# File 'lib/syslog/message.rb', line 7

def app_name
  @app_name
end

#datetimeObject

Returns the value of attribute datetime.



7
8
9
# File 'lib/syslog/message.rb', line 7

def datetime
  @datetime
end

#facilityObject

Returns the value of attribute facility.



7
8
9
# File 'lib/syslog/message.rb', line 7

def facility
  @facility
end

#hostnameObject

Returns the value of attribute hostname.



7
8
9
# File 'lib/syslog/message.rb', line 7

def hostname
  @hostname
end

#messageObject

Returns the value of attribute message.



7
8
9
# File 'lib/syslog/message.rb', line 7

def message
  @message
end

#msgidObject

Returns the value of attribute msgid.



7
8
9
# File 'lib/syslog/message.rb', line 7

def msgid
  @msgid
end

#procidObject

Returns the value of attribute procid.



7
8
9
# File 'lib/syslog/message.rb', line 7

def procid
  @procid
end

#severityObject

Returns the value of attribute severity.



7
8
9
# File 'lib/syslog/message.rb', line 7

def severity
  @severity
end

#structured_dataObject

Returns the value of attribute structured_data.



7
8
9
# File 'lib/syslog/message.rb', line 7

def structured_data
  @structured_data
end

#versionObject

Returns the value of attribute version.



7
8
9
# File 'lib/syslog/message.rb', line 7

def version
  @version
end

Class Method Details

.parse(str) ⇒ Object



65
66
67
68
69
70
71
# File 'lib/syslog/message.rb', line 65

def self.parse(str)
  begin
    Message.new(str)
  rescue ArgumentError
    nil
  end
end

Instance Method Details

#to_sObject



52
53
54
55
56
57
58
59
60
61
62
63
# File 'lib/syslog/message.rb', line 52

def to_s
  str = ''
  str << "<#{(@facility * 8) + @severity}>#{@version} "
  str << "#{nil_or(@datetime) { |d| d.strftime('%Y-%m-%dT%H:%M:%S.%6N%:z') }} "
  str << "#{nil_or(@hostname)} "
  str << "#{nil_or(@app_name)} "
  str << "#{nil_or(@procid)} "
  str << "#{nil_or(@msgid)} "
  str << "#{nil_or(@structured_data)}"
  str << " #{@message}" unless @message.nil?
  str
end