Documentation ¶
Index ¶
- Constants
- func Bind(logger SlaLogger)
- func BrigeWrite(bridge Bridge, p []byte) error
- func Install(bridge Bridge)
- func NewConsoleWriter(e Encoder, f *LevelFilter) *consoleWriter
- func NewFileWriter(opts *FileWriterOption) *fileWriter
- func NewJsonEncoder() *jsonEncoder
- func NewLiteralConverter(value string) *literalConverter
- func NewLogstashEncoder() *logstashEncoder
- func NewNoopRollingPolicy() *noopRollingPolicy
- func NewPatternCompiler(node *node, converterMap map[string]NewConverter) *patternCompiler
- func NewPatternParser(pattern string) *patternParser
- func NewSizeAndTimeBasedRollingPolicy(filenamePattern string, maxSize string) *sizeAndTimeBasedRollingPolicy
- func NewSocketWriter(u *url.URL) *socketWriter
- func NewTimeBasedRollingPolicy(filenamePattern string) *timeBasedRollingPolicy
- func Report(msg string)
- func Reportf(format string, args ...interface{})
- type Bridge
- type Converter
- type Encoder
- type FileWriterOption
- type Filter
- type Level
- type LevelFilter
- type MultiWriter
- type NewConverter
- type PatternEncoder
- type Record
- type RollingPolicy
- type SlaLogger
- type SocketReader
- type Writer
Constants ¶
const ( LevelFieldKey = "level" TimestampFieldKey = "time" MessageFieldKey = "message" TimestampFormat = "2006-01-02T15:04:05.000Z07:00" )
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 ¶
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 ¶
TODO: reconnection NewSocketWriter create a logging writter via socket.
func NewTimeBasedRollingPolicy ¶
func NewTimeBasedRollingPolicy(filenamePattern string) *timeBasedRollingPolicy
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 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 Level ¶
type Level int8
func ParseLevel ¶
ParseLevel converts a level string into slago level value.
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.
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.
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
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.
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.