Problems with current proton logging:
- There are multiple logging systems that are not connected
- pn_log_* is used for some things that are not connected to an AMQP
connection (but not all things)
- pn_transport_t has its own logging system that is the major logging
system in proton, with an pn_transport_logf() and friends API and an
ability to sink the log its output log messages using
pn_transport_set_tracer(). However not everything that might need to
log messages is connected to a pn_transport_t so it makes a lot more
sense for logging to be its own system that the pn_transport_t is
connected to rather than the other way around.
- The logging only has a set of vague somewhat amorphous trace flags to
decide which messages get logged. Currently the only coherent use for
this subsystem is to set the environment variable PN_TRACE_FRM to get
AMQP frame traces. There are other environment variable which produce
output (and flags can be set programmatically by client programs) but
which flags produce what output is not very systematic. There is no way
to output only logging related to SSL/TLS for example.
- The callback function that an application can attach to receive the
log messages only gets the message and maybe the pn_transport_t that is
associated, but no indication of the severity or what pert of the
library it came from.