ctxlogrus

package
v1.0.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 2, 2018 License: Apache-2.0 Imports: 4 Imported by: 0

README

ctx_logrus

import "github.com/grpc-ecosystem/go-grpc-middleware/tags/logrus"

Overview

ctx_logrus is a ctxlogger that is backed by logrus

It accepts a user-configured logrus.Logger that will be used for logging. The same logrus.Logger will be populated into the context.Context passed into gRPC handler code.

You can use ctx_logrus.Extract to log into a request-scoped logrus.Logger instance in your handler code.

As ctx_logrus.Extract will iterate all tags on from grpc_ctxtags it is therefore expensive so it is advised that you extract once at the start of the function from the context and reuse it for the remainder of the function (see examples).

Please see examples and tests for examples of use.

Imported Packages

Index

Package files

context.go doc.go noop.go

func AddFields

func AddFields(ctx context.Context, fields logrus.Fields)

AddFields adds logrus fields to the logger.

func Extract

func Extract(ctx context.Context) *logrus.Entry

Extract takes the call-scoped logrus.Entry from ctx_logrus middleware.

If the ctx_logrus middleware wasn't used, a no-op logrus.Entry is returned. This makes it safe to use regardless.

func ToContext

func ToContext(ctx context.Context, entry *logrus.Entry) context.Context

ToContext adds the logrus.Entry to the context for extraction later. Returning the new context that has been created.


Generated by godoc2ghmd

Documentation

Overview

`ctxlogrus` is a ctxlogger that is backed by logrus

It accepts a user-configured `logrus.Logger` that will be used for logging. The same `logrus.Logger` will be populated into the `context.Context` passed into gRPC handler code.

You can use `ctx_logrus.Extract` to log into a request-scoped `logrus.Logger` instance in your handler code.

As `ctx_logrus.Extract` will iterate all tags on from `grpc_ctxtags` it is therefore expensive so it is advised that you extract once at the start of the function from the context and reuse it for the remainder of the function (see examples).

Please see examples and tests for examples of use.

Index

Examples

Constants

This section is empty.

Variables

This section is empty.

Functions

func AddFields

func AddFields(ctx context.Context, fields logrus.Fields)

AddFields adds logrus fields to the logger.

func Extract

func Extract(ctx context.Context) *logrus.Entry

Extract takes the call-scoped logrus.Entry from ctx_logrus middleware.

If the ctx_logrus middleware wasn't used, a no-op `logrus.Entry` is returned. This makes it safe to use regardless.

Example (Unary)

Simple unary handler that adds custom fields to the requests's context. These will be used for all log statements.

package main

import (
	"github.com/grpc-ecosystem/go-grpc-middleware/logging/logrus/ctxlogrus"
	"github.com/grpc-ecosystem/go-grpc-middleware/tags"
	"github.com/sirupsen/logrus"
	"golang.org/x/net/context"
)

var logrusLogger *logrus.Logger

// Simple unary handler that adds custom fields to the requests's context. These will be used for all log statements.
func main() {
	ctx := context.Background()
	// setting tags will be added to the logger as log fields
	grpc_ctxtags.Extract(ctx).Set("custom_tags.string", "something").Set("custom_tags.int", 1337)
	// Extract a single request-scoped logrus.Logger and log messages.
	l := ctxlogrus.Extract(ctx)
	l.Info("some ping")
	l.Info("another ping")
}
Output:

func ToContext

func ToContext(ctx context.Context, entry *logrus.Entry) context.Context

ToContext adds the logrus.Entry to the context for extraction later. Returning the new context that has been created.

Types

This section is empty.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL