Class: LoggingElf::GelfData
- Inherits:
-
Object
- Object
- LoggingElf::GelfData
- Includes:
- ActiveModel::Validations
- Defined in:
- lib/logging_elf/gelf_data.rb
Instance Attribute Summary collapse
-
#additional_fields ⇒ Object
Returns the value of attribute additional_fields.
Class Method Summary collapse
- .add_exception_details(gelf_data, error) ⇒ Object
- .add_hash_data(gelf_data, data) ⇒ Object
- .from_log_event(log_event) ⇒ Object
- .set_backtrace_data(gelf_data, event) ⇒ Object
Instance Method Summary collapse
- #add_fields(params_hash) ⇒ Object
-
#initialize(gelf_data = {}) ⇒ GelfData
constructor
A new instance of GelfData.
- #required_gelf_attributes ⇒ Object
- #to_gelf ⇒ Object
Constructor Details
#initialize(gelf_data = {}) ⇒ GelfData
Returns a new instance of GelfData.
23 24 25 26 27 28 29 |
# File 'lib/logging_elf/gelf_data.rb', line 23 def initialize(gelf_data = {}) super self.additional_fields ||= {} self.host ||= LoggingElf.config.host if LoggingElf.config return if gelf_data.nil? add_fields(gelf_data) end |
Instance Attribute Details
#additional_fields ⇒ Object
Returns the value of attribute additional_fields.
20 21 22 |
# File 'lib/logging_elf/gelf_data.rb', line 20 def additional_fields @additional_fields end |
Class Method Details
.add_exception_details(gelf_data, error) ⇒ Object
71 72 73 74 75 76 77 |
# File 'lib/logging_elf/gelf_data.rb', line 71 def self.add_exception_details(gelf_data, error) gelf_data. = gelf_data. = "<#{error.class.name}> #{error.}" if error.backtrace gelf_data. << "\n\t" << error.backtrace.join("\n\t") end end |
.add_hash_data(gelf_data, data) ⇒ Object
50 51 52 53 54 55 56 57 58 59 |
# File 'lib/logging_elf/gelf_data.rb', line 50 def self.add_hash_data(gelf_data, data) gelf_data.add_fields(data) unless gelf_data. gelf_data. = data[:message] || data["message"] if gelf_data..blank? gelf_data. = data.map { |k, v| "#{k}='#{v}'" }.join(" ") end end end |
.from_log_event(log_event) ⇒ Object
39 40 41 42 43 44 45 46 47 48 |
# File 'lib/logging_elf/gelf_data.rb', line 39 def self.from_log_event(log_event) gd = GelfData.new(level: log_event.level, facility: log_event.logger) case log_event.data when String then gd. = log_event.data when Hash then add_hash_data(gd, log_event.data) when Exception then add_exception_details gd, log_event.data end set_backtrace_data gd, log_event gd end |
.set_backtrace_data(gelf_data, event) ⇒ Object
79 80 81 82 83 |
# File 'lib/logging_elf/gelf_data.rb', line 79 def self.set_backtrace_data(gelf_data, event) gelf_data.add_fields(file: event.file) if event.file gelf_data.add_fields(file: event.line) if event.line gelf_data.add_fields(file: event.method) if event.method end |
Instance Method Details
#add_fields(params_hash) ⇒ Object
61 62 63 64 65 66 67 68 69 |
# File 'lib/logging_elf/gelf_data.rb', line 61 def add_fields(params_hash) params_hash.each do |key, value| if required_gelf_attributes.keys.include? key send("#{key}=", value) else additional_fields["_#{key}".to_sym] = value end end end |
#required_gelf_attributes ⇒ Object
35 36 37 |
# File 'lib/logging_elf/gelf_data.rb', line 35 def required_gelf_attributes attributes end |
#to_gelf ⇒ Object
31 32 33 |
# File 'lib/logging_elf/gelf_data.rb', line 31 def to_gelf required_gelf_attributes.merge additional_fields end |