mirror of
https://github.com/meineerde/rackstash.git
synced 2025-10-17 14:01:01 +00:00
Simplify field serialization of Lograge encoder
This commit is contained in:
parent
58b58cfe4a
commit
4ee7a3f967
@ -84,14 +84,16 @@ module Rackstash
|
|||||||
private
|
private
|
||||||
|
|
||||||
def format_error(event)
|
def format_error(event)
|
||||||
error = event[FIELD_ERROR]
|
error = event[FIELD_ERROR] || nil
|
||||||
error_message = event.delete(FIELD_ERROR_MESSAGE)
|
error_message = event.delete(FIELD_ERROR_MESSAGE) || nil
|
||||||
|
|
||||||
event[FIELD_ERROR] =
|
event[FIELD_ERROR] =
|
||||||
if error.nil?
|
if error && error_message
|
||||||
error_message.nil? ? nil : "'#{error_message}'"
|
"'#{error}: #{error_message}'"
|
||||||
|
elsif error || error_message
|
||||||
|
"'#{error || error_message}'"
|
||||||
else
|
else
|
||||||
error_message.nil? ? "'#{error}'" : "'#{error}: #{error_message}'"
|
nil
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -101,40 +103,34 @@ module Rackstash
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def serialize_hash(hash, prefix: nil)
|
def serialize_hash(hash)
|
||||||
hash.map { |key, value|
|
serialized_hash = {}
|
||||||
serialize_pair(key, value, prefix)
|
hash.each_pair do |key, value|
|
||||||
}.compact.join(' '.freeze)
|
|
||||||
end
|
|
||||||
|
|
||||||
def serialize_array(array, prefix: nil)
|
|
||||||
array.each_with_index.map { |value, index|
|
|
||||||
serialize_pair(index.to_s, value, prefix)
|
|
||||||
}.compact.join(' '.freeze)
|
|
||||||
end
|
|
||||||
|
|
||||||
def serialize_pair(key, value, prefix)
|
|
||||||
if prefix
|
|
||||||
key = "#{prefix}.#{key}"
|
|
||||||
elsif key == FIELD_TIMESTAMP
|
|
||||||
# Use 'timestamp' instead of '@timestamp' on the top-level
|
# Use 'timestamp' instead of '@timestamp' on the top-level
|
||||||
key = 'timestamp'
|
key = 'timestamp'.freeze if key == FIELD_TIMESTAMP
|
||||||
|
add_serialized_field(serialized_hash, key.to_s, value)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
serialized_hash.map { |key, value| "#{key}=#{value}" }.join(' '.freeze)
|
||||||
|
end
|
||||||
|
|
||||||
|
def add_serialized_field(result, key, value)
|
||||||
case value
|
case value
|
||||||
when nil
|
when nil
|
||||||
return
|
# Don't add nil values anywhere.
|
||||||
when ::Hash
|
when ::Hash
|
||||||
return if value.empty?
|
value.each_pair do |hash_key, hash_value|
|
||||||
return serialize_hash(value, prefix: key)
|
add_serialized_field(result, "#{key}.#{hash_key}".freeze, hash_value)
|
||||||
|
end
|
||||||
when ::Array
|
when ::Array
|
||||||
return if value.empty?
|
value.each_with_index do |array_value, index|
|
||||||
return serialize_array(value, prefix: key)
|
add_serialized_field(result, "#{key}.#{index}".freeze, array_value)
|
||||||
when Float
|
end
|
||||||
value = Kernel.format('%.2f'.freeze, value)
|
when ::Float
|
||||||
|
result[key] = Kernel.format('%.2f'.freeze, value)
|
||||||
|
else
|
||||||
|
result[key] = value
|
||||||
end
|
end
|
||||||
|
|
||||||
"#{key}=#{value}"
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user