# Functions
DefaultDecider logs every payload.
ElasticsearchLoggerServerInterceptor sets up a `grpc.ServerOption` to intercept streams with `*logrus.Entry` of the logger, created with `NewLogger`, and the options given to it.
ExtractTraceParent gets a `context.Context` which holds the "Elastic-Apm-Traceparent", which is the HTTP header for trace propagation, and returns the trace id.
IgnoreServerMethodsDecider ignores logging the payload of method that is equal to any string of fullIgnoredMethodNames.
LogError logs err with logger.Errorf if err is non-nil.
NewLogger creates a `*logrus.Logger` with `elogrus` hook, which logs to elasticsearch, and returns it.
RequestExtractor extracts the request and logs it as json under the key "grpc.request.content".
SetLogger initializes the logging middleware.
StartSpan starts an externalGRPCSpanType span under the transaction in ctx, returns the created span and the context with the traceparent header matadata.
# Structs
Config is the configuration struct for the logger, Logger - a logrus Logger to use in the logger.
JSONPbMarshaller is a struct used to marshal a protobuf message to JSON.
# Type aliases
DeciderFunc is a function type to decide whether to create a log for fullMethodName.