Class: Vx::Instrumentation::Logger::Formatter
- Inherits:
-
Object
- Object
- Vx::Instrumentation::Logger::Formatter
- Defined in:
- lib/vx/instrumentation/logger.rb
Class Method Summary collapse
- .call(severity, _, _, msg) ⇒ Object
- .make_safe_hash(msg, options = {}) ⇒ Object
- .safe_value(value, options = {}) ⇒ Object
Class Method Details
.call(severity, _, _, msg) ⇒ Object
73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 |
# File 'lib/vx/instrumentation/logger.rb', line 73 def self.call(severity, _, _, msg) values = Vx::Instrumentation.default.dup case when msg.is_a?(Hash) values.deep_merge! msg when msg.respond_to?(:to_h) values.merge! msg.to_h else values.deep_merge!(message: msg) end values.deep_merge!(severity: severity.to_s.downcase) values = make_safe_hash(values) ::JSON.dump(values) + "\n" end |
.make_safe_hash(msg, options = {}) ⇒ Object
60 61 62 63 64 65 66 67 68 69 70 71 |
# File 'lib/vx/instrumentation/logger.rb', line 60 def self.make_safe_hash(msg, = {}) msg.inject({}) do |acc, pair| msg_key, msg_value = pair if msg_key == "@fields" acc[msg_key] = make_safe_hash(msg_value, join_arrays: true) else acc[msg_key] = safe_value(msg_value, ) end acc end end |
.safe_value(value, options = {}) ⇒ Object
44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
# File 'lib/vx/instrumentation/logger.rb', line 44 def self.safe_value(value, = {}) case value.class.to_s when "String", "Fixnum", "Float" value when "Symbol", "BigDecimal" value.to_s when "Array" value = value.map(&:to_s) [:join_arrays] ? value.join("\n") : value when 'NilClass' nil else value.inspect end end |