...

Package grpc_logging

import "github.com/grpc-ecosystem/go-grpc-middleware/logging"
Overview
Index
Subdirectories

Overview ▾

grpc_logging is a "parent" package for gRPC logging middlewares.

General functionality of all middleware

The gRPC logging middleware populates request-scoped data to `grpc_ctxtags.Tags` that relate to the current gRPC call (e.g. service and method names).

Once the gRPC logging middleware has added the gRPC specific Tags to the ctx they will then be written with the logs that are made using the `ctx_logrus` or `ctx_zap` loggers.

All logging middleware will emit a final log statement. It is based on the error returned by the handler function, the gRPC status code, an error (if any) and it will emit at a level controlled via `WithLevels`.

This parent package

This particular package is intended for use by other middleware, logging or otherwise. It contains interfaces that other logging middlewares *could* share . This allows code to be shared between different implementations.

Field names

All field names of loggers follow the OpenTracing semantics definitions, with `grpc.` prefix if needed: https://github.com/opentracing/specification/blob/master/semantic_conventions.md

Implementations

There are three implementations at the moment: logrus, zap and kit

See relevant packages below.

func DefaultDeciderMethod

func DefaultDeciderMethod(fullMethodName string, err error) bool

DefaultDeciderMethod is the default implementation of decider to see if you should log the call by default this if always true so all calls are logged

func DefaultErrorToCode

func DefaultErrorToCode(err error) codes.Code

type ClientPayloadLoggingDecider

ClientPayloadLoggingDecider is a user-provided function for deciding whether to log the client-side request/response payloads

type ClientPayloadLoggingDecider func(ctx context.Context, fullMethodName string) bool

type Decider

Decider function defines rules for suppressing any interceptor logs

type Decider func(fullMethodName string, err error) bool

type ErrorToCode

ErrorToCode function determines the error code of an error This makes using custom errors with grpc middleware easier

type ErrorToCode func(err error) codes.Code

type JsonPbMarshaler

JsonPbMarshaller is a marshaller that serializes protobuf messages.

type JsonPbMarshaler interface {
    Marshal(out io.Writer, pb proto.Message) error
}

type ServerPayloadLoggingDecider

ServerPayloadLoggingDecider is a user-provided function for deciding whether to log the server-side request/response payloads

type ServerPayloadLoggingDecider func(ctx context.Context, fullMethodName string, servingObject interface{}) bool

Subdirectories

Name Synopsis
..
kit `grpc_kit` is a gRPC logging middleware backed by go-kit loggers
ctxkit `ctxkit` is a ctxlogger that is backed by go-kit
logrus `grpc_logrus` is a gRPC logging middleware backed by Logrus loggers
ctxlogrus `ctxlogrus` is a ctxlogger that is backed by logrus
settable grpc_logsettable contains a thread-safe wrapper around grpc-logging infrastructure.
zap `grpc_zap` is a gRPC logging middleware backed by ZAP loggers
ctxzap `ctxzap` is a ctxlogger that is backed by Zap