Skip to content
Snippets Groups Projects
user avatar
Patrick Steinhardt authored
Constructing the logging interceptors is quite involved and requires the
caller to set up multiple different structures. Besides being hard to
understand, it also requires us to expose the fact that we're using the
logrus go-grpc-middleware to our callers.

Refactor the code to unify all of the plumbing into the logger itself.
All the caller needs to pass in now is any additional fields producers
they wish to install, but other than that things are self-contained. As
this change requires the need to pass in the logrus message producer, it
ensures that we can install non-logrus loggers as interceptors.

Note that this requires us to change some of our tests to also install
the `log.PerRPCLogHandler`. This is required because our own logging
interceptor plays some games with the log message such that it can also
include gRPC statistics and thus defers writing the log message to a
later point. This late rpoint is the per-RPC log handler, which thus
becomes mandatory in order to observe any log messages.
690b1e55
Name Last commit Last update