18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
# File 'lib/log_struct/shared/serialize_common_public.rb', line 18
def serialize_common_public(strict = true)
unless respond_to?(:source) && respond_to?(:event)
raise ArgumentError, "Public log struct must define #source and #event"
end
src_val = public_send(:source)
evt_val = public_send(:event)
src = src_val.respond_to?(:serialize) ? src_val.public_send(:serialize).to_s : src_val.to_s
evt = evt_val.respond_to?(:serialize) ? evt_val.public_send(:serialize).to_s : evt_val.to_s
lvl = level.serialize.to_s
ts = timestamp.iso8601(3)
{
LogField::Source.serialize => src,
LogField::Event.serialize => evt,
LogField::Level.serialize => lvl,
LogField::Timestamp.serialize => ts
}
end
|