slago

package module
v0.1.0 Latest Latest
Warning

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

Go to latest
Published: Sep 3, 2019 License: Apache-2.0 Imports: 18 Imported by: 4

Documentation

Index

Constants

View Source
const (
	LevelFieldKey     = "level"
	TimestampFieldKey = "time"
	MessageFieldKey   = "message"

	TimestampFormat = "2006-01-02T15:04:05.000Z07:00"
)
View Source
const (
	DefaultLayout = "#color(#date{2006-01-02}){cyan} #color(#level) #message #fields"
)

Variables

This section is empty.

Functions

func Bind

func Bind(logger SlaLogger)

Bind binds an implementation of slago logger as output logger.

func BrigeWrite

func BrigeWrite(bridge Bridge, p []byte) error

BrigeWrite writes data from bridge to slago logger.

func Install

func Install(bridge Bridge)

Install installs a logging framework bridge into slago. All the log of the bridge will be delegated to slagto if the logging framework bridge was installed.

func NewConsoleWriter

func NewConsoleWriter(e Encoder, f *LevelFilter) *consoleWriter

func NewFileWriter

func NewFileWriter(opts *FileWriterOption) *fileWriter

NewFileWriter creates a new instance of file writer.

func NewJsonEncoder

func NewJsonEncoder() *jsonEncoder

NewJsonEncoder creates a new instance of encoder to encode data to json.

func NewLiteralConverter

func NewLiteralConverter(value string) *literalConverter

func NewLogstashEncoder

func NewLogstashEncoder() *logstashEncoder

NewLogstashEncoder creates a new instance of logstash encoder.

func NewNoopRollingPolicy

func NewNoopRollingPolicy() *noopRollingPolicy

NewNoopRollingPolicy creates a new instance of rolling policy which will do nothing.

func NewPatternCompiler

func NewPatternCompiler(node *node, converterMap map[string]NewConverter) *patternCompiler

func NewPatternParser

func NewPatternParser(pattern string) *patternParser

func NewSizeAndTimeBasedRollingPolicy

func NewSizeAndTimeBasedRollingPolicy(filenamePattern string,
	maxSize string) *sizeAndTimeBasedRollingPolicy

NewSizeAndTimeBasedRollingPolicy creates a new instance of size and time based rolling policy for file writer.

func NewSocketWriter

func NewSocketWriter(u *url.URL) *socketWriter

TODO: reconnection NewSocketWriter create a logging writter via socket.

func NewTimeBasedRollingPolicy

func NewTimeBasedRollingPolicy(filenamePattern string) *timeBasedRollingPolicy

func Report

func Report(msg string)

Report reports message in stdout.

func Reportf

func Reportf(format string, args ...interface{})

Reportf reports message with arguments in stdout.

Types

type Bridge

type Bridge interface {
	// Name returns the name of this bridge.
	Name() string

	// ParseLevel parses the given level string into slago level.
	ParseLevel(lvl string) Level
}

Bridge represents bridge between other logging framework and slago logger.

type Converter

type Converter interface {
	AttatchNext(next Converter)
	Next() Converter
	AttachChild(child Converter)
	AttachOptions(opts []string)
	Convert(event interface{}) string
}

type Encoder

type Encoder interface {
	// Encode encodes origin data to formatted data.
	Encode(p []byte) (data []byte, err error)
}

Encoder represents an encoder to encode logging event into different format.

type FileWriterOption

type FileWriterOption struct {
	Filter        *LevelFilter
	Encoder       Encoder
	RollingPolicy RollingPolicy
	Filename      string
}

type Filter

type Filter interface {
	Do() bool
}

type Level

type Level int8
const (
	TraceLevel Level = iota
	DebugLevel
	InfoLevel
	WarnLevel
	ErrorLevel
	FatalLevel
	PanicLevel
)

func ParseLevel

func ParseLevel(lvl string) Level

ParseLevel converts a level string into slago level value.

func (Level) String

func (l Level) String() string

type LevelFilter

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

LevelFilter represents a level filter.

func NewLevelFilter

func NewLevelFilter(lvl Level) *LevelFilter

NewLevelFilter creates a new instance of filter.

func (*LevelFilter) Do

func (f *LevelFilter) Do(level Level) bool

Do will do the filter.

type MultiWriter

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

MultiWriter represents multiple writer which implements slago.Writer. This writer is used as output which will implement SlaLogger.

func NewMultiWriter

func NewMultiWriter() *MultiWriter

NewMultiWriter creates a new multiple writer.

func (*MultiWriter) AddWriter

func (mw *MultiWriter) AddWriter(w ...Writer)

AddWriter adds a slago writer into multi writer.

func (*MultiWriter) Write

func (mw *MultiWriter) Write(p []byte) (n int, err error)

type NewConverter

type NewConverter func() Converter

type PatternEncoder

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

PatternEncoder encodes logging event with pattern.

func NewPatternEncoder

func NewPatternEncoder(layout string) *PatternEncoder

func (*PatternEncoder) Encode

func (pe *PatternEncoder) Encode(p []byte) (data []byte, err error)

type Record

type Record interface {
	Str(key, val string) Record

	Strs(key string, val []string) Record

	Bytes(key string, val []byte) Record

	Hex(key string, val []byte) Record

	Err(err error) Record

	Errs(key string, errs []error) Record

	Bool(key string, val bool) Record

	Bools(key string, val []bool) Record

	Int(key string, val int) Record

	Ints(key string, val []int) Record

	Int8(key string, val int8) Record

	Ints8(key string, val []int8) Record

	Int16(key string, val int16) Record

	Ints16(key string, val []int16) Record

	Int32(key string, val int32) Record

	Ints32(key string, val []int32) Record

	Int64(key string, val int64) Record

	Ints64(key string, val []int64) Record

	Uint(key string, val uint) Record

	Uints(key string, val []uint) Record

	Uint8(key string, val uint8) Record

	Uints8(key string, val []uint8) Record

	Uint16(key string, val uint16) Record

	Uints16(key string, val []uint16) Record

	Uint32(key string, val uint32) Record

	Uints32(key string, val []uint32) Record

	Uint64(key string, val uint64) Record

	Uints64(key string, val []uint64) Record

	Float32(key string, val float32) Record

	Floats32(key string, val []float32) Record

	Float64(key string, val float64) Record

	Floats64(key string, val []float64) Record

	Time(key string, val time.Time) Record

	Times(key string, val []time.Time) Record

	Dur(key string, val time.Duration) Record

	Durs(key string, val []time.Duration) Record

	Interface(key string, val interface{}) Record

	Msg(msg string)

	Msgf(format string, msg string)
}

Record represents a log record to hold the data to log.

type RollingPolicy

type RollingPolicy interface {
	// Prepare prepares current rolling policy
	Prepare() error

	// Attach attaches file writer.
	Attach(w *fileWriter)

	// ShouldTrigger check if there's necessary to trigger rolling.
	ShouldTrigger(fileSize int64) bool

	// Rotate does the log rolling.
	Rotate() error
}

RollingPolicy represents policy for log rolling.

type SlaLogger

type SlaLogger interface {
	// Name returns the name of current slago logger implementation.
	Name() string

	// AddWriter add one or more writer to this logger.
	AddWriter(w ...Writer)

	// SetLevel sets global level for root logger.
	SetLevel(lvl Level)

	// Level logs with a level.
	Level(lvl Level) Record

	// Trace logs with trace level.
	Trace() Record

	// Trace logs with debug level.
	Debug() Record

	// Trace logs with info level.
	Info() Record

	// Trace logs with warn level.
	Warn() Record

	// Trace logs with error level.
	Error() Record

	// Trace logs with faltal level.
	Fatal() Record

	// Trace logs with panic level.
	Panic() Record

	// Print prints the given args.
	Print(args ...interface{})

	// Printf prints with given format and args.
	Printf(format string, args ...interface{})

	// WriteRaw writes raw logging event.
	WriteRaw(p []byte)
}

SlaLogger represents a logging abstraction.

func Logger

func Logger() SlaLogger

Logger get a global slago logger to use.

type SocketReader

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

func NewSocketReader

func NewSocketReader() *SocketReader

func (*SocketReader) Start

func (sr *SocketReader) Start()

func (*SocketReader) Stop

func (sr *SocketReader) Stop()

type Writer

type Writer interface {
	io.Writer

	// Encoder returns encoder used in current writer.
	Encoder() Encoder

	// LevelFilter returns filter used in current writer.
	Filter() *LevelFilter
}

Writer is the interface that wraps the io.Writer, add adds Encoder and LevelFilter func for slago to ecnode and filter logs.

Jump to

Keyboard shortcuts

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