logs

package
v0.0.0-...-c490aa8 Latest Latest
Warning

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

Go to latest
Published: May 9, 2019 License: Apache-2.0 Imports: 11 Imported by: 0

README

Logs

 __        ______     _______      _______.
|  |      /  __  \   /  _____|    /       |
|  |     |  |  |  | |  |  __     |   (----`
|  |     |  |  |  | |  | |_ |     \   \
|  `----.|  `--'  | |  |__| | .----)   |
|_______| \______/   \______| |_______/

`logs` send logs to opentracing span via zap logger.

Install

go get github.com/nanjj/cub/logs

Import

import github.com/nanjj/cub/logs

Usage

logger, ctx := logs.StartSpanFromContext(ctx, "Create")
defer logger.Finish() // Use opentracing.Span API to finish span

logger.Info("Enter") // Use zap logger api to send log
logger.SetTag("RequestID", requestID) // Use opentracing.Span API to set tag

Notice

  1. Do not send too many logs in a span, for Jaeger users, the UDP packet limit may be met for too many logs in a span.
  2. Defer call logger.Finish() or logger.Sync(), no need to do both.

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	Level = func() (level zapcore.Level) {
		level = zapcore.InfoLevel
		if s := os.Getenv("LOGS_LEVEL"); s != "" {
			level.Set(s)
		}
		return
	}()
)

Functions

func Extract

func Extract(tracer opentracing.Tracer,
	carrier map[string]string) (sc opentracing.SpanContext, err error)

func Inject

func Inject(tracer opentracing.Tracer,
	sc opentracing.SpanContext, carrier map[string]string) (err error)

func TracerFromContext

func TracerFromContext(ctx context.Context) (tracer opentracing.Tracer)

TracerFromContext get tracer from context or global tracer

func WithValues

func WithValues(c context.Context,
	values map[string]string) (ctx context.Context)

Types

type Context

type Context interface {
	Fields() []log.Field
}

type FieldsSpan

type FieldsSpan struct {
	Context
	// contains filtered or unexported fields
}

func NewFieldsSpan

func NewFieldsSpan(sp opentracing.Span) *FieldsSpan

func (*FieldsSpan) Fields

func (c *FieldsSpan) Fields() (fields []log.Field)

type SpanLogger

type SpanLogger struct {
	opentracing.Span
	*zap.Logger
}

func NewSpanLogger

func NewSpanLogger(span opentracing.Span) (logger *SpanLogger)

func SpanFromContext

func SpanFromContext(ctx context.Context) (sp *SpanLogger)

func StartSpanFromCarrier

func StartSpanFromCarrier(carrier map[string]string, tracer opentracing.Tracer, name string) (logger *SpanLogger, ctx context.Context)

func StartSpanFromContext

func StartSpanFromContext(c context.Context, name string, opts ...opentracing.StartSpanOption) (sl *SpanLogger, ctx context.Context)

StartSpanFromContext -

func StartSpanFromContextWithTracer

func StartSpanFromContextWithTracer(c context.Context, tracer opentracing.Tracer, name string, opts ...opentracing.StartSpanOption) (logger *SpanLogger, ctx context.Context)

StartSpanFromContextWithTracer -

func (*SpanLogger) With

func (l *SpanLogger) With(fields ...zap.Field) *SpanLogger

func (*SpanLogger) WithOptions

func (l *SpanLogger) WithOptions(opts ...zap.Option) *SpanLogger

type SpanZapCore

type SpanZapCore struct {
	*FieldsSpan
	zapcore.LevelEnabler
}

func NewSpanZapCore

func NewSpanZapCore(sp opentracing.Span) *SpanZapCore

func (*SpanZapCore) Check

func (*SpanZapCore) Sync

func (c *SpanZapCore) Sync() error

func (*SpanZapCore) With

func (c *SpanZapCore) With(fields []zapcore.Field) (core zapcore.Core)

func (*SpanZapCore) Write

func (c *SpanZapCore) Write(entry zapcore.Entry, fields []zapcore.Field) (err error)

type Tracer

type Tracer struct {
	opentracing.Tracer
	io.Closer
}

func NewTracer

func NewTracer(name string, opts ...config.Option) (tracer *Tracer, err error)

NewTracer - returns a new tracer

Jump to

Keyboard shortcuts

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