micro/tracer/options.go

63 lines
1017 B
Go
Raw Normal View History

package tracer
2020-01-18 13:20:46 +03:00
import "github.com/unistack-org/micro/v3/logger"
var (
// DefaultSize of the buffer
DefaultSize = 64
)
// Options struct
2020-01-29 18:45:11 +03:00
type Options struct {
Name string
// Logger is the logger for messages
Logger logger.Logger
2020-01-29 18:45:11 +03:00
// Size is the size of ring buffer
Size int
}
2020-01-18 13:20:46 +03:00
// Option func
2020-01-18 13:20:46 +03:00
type Option func(o *Options)
// ReadOptions struct
2020-01-18 13:20:46 +03:00
type ReadOptions struct {
// Trace id
Trace string
}
// ReadOption func
2020-01-18 13:20:46 +03:00
type ReadOption func(o *ReadOptions)
2020-01-25 00:24:51 +03:00
// ReadTrace read the given trace
2020-01-25 00:24:51 +03:00
func ReadTrace(t string) ReadOption {
return func(o *ReadOptions) {
o.Trace = t
}
}
2020-01-29 18:45:11 +03:00
// Logger sets the logger
func Logger(l logger.Logger) Option {
return func(o *Options) {
o.Logger = l
}
}
// NewOptions returns default options
func NewOptions(opts ...Option) Options {
options := Options{
Logger: logger.DefaultLogger,
Size: DefaultSize,
2020-01-29 18:45:11 +03:00
}
for _, o := range opts {
o(&options)
}
return options
2020-01-29 18:45:11 +03:00
}
// Name sets the name
func Name(n string) Option {
return func(o *Options) {
o.Name = n
}
}