Tagged loggers like ActiveSupport::TaggedLogger make logging both named and unnamed tags visible for better application debugging. Currently log_tags only supported an array of tags such as:
config.log_tags = [
:remote_ip,
->(request) { some_computed_value }
]
However as this list gets long it has two issues:
1. Parsing JSON logs requires positional references (ie remote_ip will
always be at some index)
2. Some tags look similar and are hard to discern in a log message.
For example a datadog trace id and epoch time look indistinguishable to a
human reading those logs