opentracing-go: github.com/opentracing/opentracing-go/log Index | Files

package log

import "github.com/opentracing/opentracing-go/log"

Index

Package Files

field.go util.go

func InterleavedKVToFields Uses

func InterleavedKVToFields(keyValues ...interface{}) ([]Field, error)

InterleavedKVToFields converts keyValues a la Span.LogKV() to a Field slice a la Span.LogFields().

type Encoder Uses

type Encoder interface {
    EmitString(key, value string)
    EmitBool(key string, value bool)
    EmitInt(key string, value int)
    EmitInt32(key string, value int32)
    EmitInt64(key string, value int64)
    EmitUint32(key string, value uint32)
    EmitUint64(key string, value uint64)
    EmitFloat32(key string, value float32)
    EmitFloat64(key string, value float64)
    EmitObject(key string, value interface{})
    EmitLazyLogger(value LazyLogger)
}

Encoder allows access to the contents of a Field (via a call to Field.Marshal).

Tracer implementations typically provide an implementation of Encoder; OpenTracing callers typically do not need to concern themselves with it.

type Field Uses

type Field struct {
    // contains filtered or unexported fields
}

Field instances are constructed via LogBool, LogString, and so on. Tracing implementations may then handle them via the Field.Marshal method.

"heavily influenced by" (i.e., partially stolen from) https://github.com/uber-go/zap

func Bool Uses

func Bool(key string, val bool) Field

Bool adds a bool-valued key:value pair to a Span.LogFields() record

func Error Uses

func Error(err error) Field

Error adds an error with the key "error" to a Span.LogFields() record

func Float32 Uses

func Float32(key string, val float32) Field

Float32 adds a float32-valued key:value pair to a Span.LogFields() record

func Float64 Uses

func Float64(key string, val float64) Field

Float64 adds a float64-valued key:value pair to a Span.LogFields() record

func Int Uses

func Int(key string, val int) Field

Int adds an int-valued key:value pair to a Span.LogFields() record

func Int32 Uses

func Int32(key string, val int32) Field

Int32 adds an int32-valued key:value pair to a Span.LogFields() record

func Int64 Uses

func Int64(key string, val int64) Field

Int64 adds an int64-valued key:value pair to a Span.LogFields() record

func Lazy Uses

func Lazy(ll LazyLogger) Field

Lazy adds a LazyLogger to a Span.LogFields() record; the tracing implementation will call the LazyLogger function at an indefinite time in the future (after Lazy() returns).

func Noop Uses

func Noop() Field

Noop creates a no-op log field that should be ignored by the tracer. It can be used to capture optional fields, for example those that should only be logged in non-production environment:

func customerField(order *Order) log.Field {
     if os.Getenv("ENVIRONMENT") == "dev" {
         return log.String("customer", order.Customer.ID)
     }
     return log.Noop()
}

span.LogFields(log.String("event", "purchase"), customerField(order))

func Object Uses

func Object(key string, obj interface{}) Field

Object adds an object-valued key:value pair to a Span.LogFields() record

func String Uses

func String(key, val string) Field

String adds a string-valued key:value pair to a Span.LogFields() record

func Uint32 Uses

func Uint32(key string, val uint32) Field

Uint32 adds a uint32-valued key:value pair to a Span.LogFields() record

func Uint64 Uses

func Uint64(key string, val uint64) Field

Uint64 adds a uint64-valued key:value pair to a Span.LogFields() record

func (Field) Key Uses

func (lf Field) Key() string

Key returns the field's key.

func (Field) Marshal Uses

func (lf Field) Marshal(visitor Encoder)

Marshal passes a Field instance through to the appropriate field-type-specific method of an Encoder.

func (Field) String Uses

func (lf Field) String() string

String returns a string representation of the key and value.

func (Field) Value Uses

func (lf Field) Value() interface{}

Value returns the field's value as interface{}.

type LazyLogger Uses

type LazyLogger func(fv Encoder)

LazyLogger allows for user-defined, late-bound logging of arbitrary data

Package log imports 2 packages (graph) and is imported by 385 packages. Updated 2017-07-16. Refresh now. Tools for package owners.