log

package
v3.0.8 Latest Latest
Warning

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

Go to latest
Published: Oct 24, 2017 License: MIT Imports: 4 Imported by: 0

Documentation

Overview

Package log contains adaptors of gentle.Logger for different logging libraries. Currently log15 and logrus are supported.

Index

Examples

Constants

This section is empty.

Variables

This section is empty.

Functions

func NewLog15Adapter

func NewLog15Adapter(logger log15.Logger) gentle.Logger
Example (Package)
// set up log level for package-global logger
logger := log15.New()
h := log15.LvlFilterHandler(log15.LvlDebug, log15.StdoutHandler)
logger.SetHandler(h)
gentle.Log = NewLog15Adapter(logger)

msgID := 0
var fakeStream gentle.SimpleStream = func(_ context.Context) (gentle.Message, error) {
	defer func() { msgID++ }()
	return gentle.SimpleMessage(strconv.Itoa(msgID)), nil
}

limiter := gentle.NewTokenBucketRateLimit(10*time.Millisecond, 1)
stream := gentle.NewRateLimitedStream(
	gentle.NewRateLimitedStreamOpts("", "test", limiter),
	fakeStream)

// log:
// t=2017-08-23T23:50:50+0800 lvl=info msg="[Stream] Get(), no span" namespace= gentle=sRate name=test err="No parent span"
// t=2017-08-23T23:50:50+0800 lvl=dbug msg="[Stream] Get() ok" namespace= gentle=sRate name=test msgOut=0 timespan=0.000
stream.Get(context.Background())
Output:

Example (Stream)
// set up log level for stream logger
msgID := 0
var fakeStream gentle.SimpleStream = func(_ context.Context) (gentle.Message, error) {
	defer func() { msgID++ }()
	return gentle.SimpleMessage(strconv.Itoa(msgID)), nil
}

limiter := gentle.NewTokenBucketRateLimit(10*time.Millisecond, 1)

opts := gentle.NewRateLimitedStreamOpts("", "test2", limiter)
ll := log15.New()
ll.SetHandler(log15.LvlFilterHandler(log15.LvlDebug, log15.StdoutHandler))
opts.Log = NewLog15Adapter(ll)
stream := gentle.NewRateLimitedStream(opts, fakeStream)

// log:
// t=2017-08-23T23:54:46+0800 lvl=info msg="[Stream] Get(), no span" err="No parent span"
// t=2017-08-23T23:54:46+0800 lvl=dbug msg="[Stream] Get() ok" msgOut=0 timespan=0.000
stream.Get(context.Background())
Output:

func NewLogusLogger

func NewLogusLogger(logger *logrus.Logger) gentle.Logger
Example (Package)
// Demo how to replace package-global logger with logrus logger
ll := logrus.New()
ll.SetLevel(logrus.InfoLevel)
// replace package-global logger
gentle.Log = NewLogusLogger(ll)

msgID := 0
var fakeStream gentle.SimpleStream = func(_ context.Context) (gentle.Message, error) {
	defer func() { msgID++ }()
	return gentle.SimpleMessage(strconv.Itoa(msgID)), nil
}

limiter := gentle.NewTokenBucketRateLimit(10*time.Millisecond, 1)
stream := gentle.NewRateLimitedStream(
	gentle.NewRateLimitedStreamOpts("", "test", limiter),
	fakeStream)
// log:
// time="2017-08-23T23:56:14+08:00" level=info msg="[Stream] Get(), no span" err="No parent span" gentle=sRate name=test namespace=
stream.Get(context.Background())
Output:

Example (Stream)
msgID := 0
var fakeStream gentle.SimpleStream = func(_ context.Context) (gentle.Message, error) {
	defer func() { msgID++ }()
	return gentle.SimpleMessage(strconv.Itoa(msgID)), nil
}

limiter := gentle.NewTokenBucketRateLimit(10*time.Millisecond, 1)
opts := gentle.NewRateLimitedStreamOpts("", "test2", limiter)
// replace stream2's logger with logrus one and set its level to debug
ll := logrus.New()
ll.SetLevel(logrus.DebugLevel)
opts.Log = NewLogusLogger(ll)
stream := gentle.NewRateLimitedStream(opts, fakeStream)

// log:
// time="2017-08-23T23:57:11+08:00" level=info msg="[Stream] Get(), no span" err="No parent span"
// time="2017-08-23T23:57:11+08:00" level=debug msg="[Stream] Get() ok" msgOut=0 timespan=2.6865e-05
stream.Get(context.Background())
Output:

Types

type Log15Adapter

type Log15Adapter struct {
	log15.Logger
}

func (*Log15Adapter) New

func (l *Log15Adapter) New(fields ...interface{}) gentle.Logger

type LogrusAdapter

type LogrusAdapter struct {
	*logrus.Entry
}

func (*LogrusAdapter) Crit

func (l *LogrusAdapter) Crit(msg string, fields ...interface{})

func (*LogrusAdapter) Debug

func (l *LogrusAdapter) Debug(msg string, fields ...interface{})

func (*LogrusAdapter) Error

func (l *LogrusAdapter) Error(msg string, fields ...interface{})

func (*LogrusAdapter) Info

func (l *LogrusAdapter) Info(msg string, fields ...interface{})

func (*LogrusAdapter) New

func (l *LogrusAdapter) New(fields ...interface{}) gentle.Logger

func (*LogrusAdapter) Warn

func (l *LogrusAdapter) Warn(msg string, fields ...interface{})

Jump to

Keyboard shortcuts

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