Class: Ama::Logger::Formatter::StringifiedHash
- Inherits:
-
Object
- Object
- Ama::Logger::Formatter::StringifiedHash
- Defined in:
- lib/ama/logger/formatter/stringified_hash.rb
Instance Attribute Summary collapse
-
#event_name ⇒ Object
Returns the value of attribute event_name.
-
#filters ⇒ Object
Returns the value of attribute filters.
-
#regex ⇒ Object
Returns the value of attribute regex.
Instance Method Summary collapse
- #call(severity, time, progname, msg) ⇒ Object
-
#initialize(opts = {}) ⇒ StringifiedHash
constructor
A new instance of StringifiedHash.
Constructor Details
#initialize(opts = {}) ⇒ StringifiedHash
Returns a new instance of StringifiedHash.
9 10 11 12 13 14 15 16 |
# File 'lib/ama/logger/formatter/stringified_hash.rb', line 9 def initialize(opts = {}) self.filters = opts.fetch(:filters) { [] } .select { |p| p.is_a?(Symbol) || p.is_a?(String) } .map(&:to_s) .join('|') self.regex = /:(?<name>#{filters})=>"(?<value>[^"]*)"/ self.event_name = opts.fetch(:event_name) { 'log.rails' } end |
Instance Attribute Details
#event_name ⇒ Object
Returns the value of attribute event_name.
7 8 9 |
# File 'lib/ama/logger/formatter/stringified_hash.rb', line 7 def event_name @event_name end |
#filters ⇒ Object
Returns the value of attribute filters.
7 8 9 |
# File 'lib/ama/logger/formatter/stringified_hash.rb', line 7 def filters @filters end |
#regex ⇒ Object
Returns the value of attribute regex.
7 8 9 |
# File 'lib/ama/logger/formatter/stringified_hash.rb', line 7 def regex @regex end |
Instance Method Details
#call(severity, time, progname, msg) ⇒ Object
18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
# File 'lib/ama/logger/formatter/stringified_hash.rb', line 18 def call(severity, time, progname, msg) { eventName: event_name, eventSource: progname || self.class.name, eventId: SecureRandom.uuid, eventAgent: Ama::Logger::AGENT_VERSION, severity: severity, details: msg.gsub(regex, ':\k<name>=>"[FILTERED]"'), timestamp: time.utc.iso8601 } .compact .to_json .concat("\n") end |