Documentation ¶
Overview ¶
Package log contains adaptors of gentle.Logger for different logging libraries. Currently log15 and logrus are supported.
Index ¶
- func NewLog15Adapter(logger log15.Logger) gentle.Logger
- func NewLogusLogger(logger *logrus.Logger) gentle.Logger
- type Log15Adapter
- type LogrusAdapter
- func (l *LogrusAdapter) Crit(msg string, fields ...interface{})
- func (l *LogrusAdapter) Debug(msg string, fields ...interface{})
- func (l *LogrusAdapter) Error(msg string, fields ...interface{})
- func (l *LogrusAdapter) Info(msg string, fields ...interface{})
- func (l *LogrusAdapter) New(fields ...interface{}) gentle.Logger
- func (l *LogrusAdapter) Warn(msg string, fields ...interface{})
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func NewLog15Adapter ¶
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 ¶
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{})
Click to show internal directories.
Click to hide internal directories.