Documentation ¶
Overview ¶
Package lgr provides a simple logger with some extras. Primary way to log is Logf method. The logger's output can be customized in 2 ways:
- by setting individual formatting flags, i.e. lgr.New(lgr.Msec, lgr.CallerFunc)
- by passing formatting template, i.e. lgr.New(lgr.Format(lgr.Short))
Leveled output works for messages based on text prefix, i.e. Logf("INFO some message") means INFO level. Debug and trace levels can be filtered based on lgr.Trace and lgr.Debug options. ERROR, FATAL and PANIC levels send to err as well. FATAL terminate caller application with os.Exit(1) and PANIC also prints stack trace.
Index ¶
- Constants
- Variables
- func CallerFile(l *Logger)
- func CallerFunc(l *Logger)
- func CallerPkg(l *Logger)
- func Debug(l *Logger)
- func Fatalf(format string, args ...interface{})
- func LevelBraces(l *Logger)
- func Msec(l *Logger)
- func Print(line string)
- func Printf(format string, args ...interface{})
- func Setup(opts ...Option)
- func SetupStdLogger(opts ...Option)
- func StackTraceOnError(l *Logger)
- func ToStdLogger(l L, level string) *log.Logger
- func Trace(l *Logger)
- type Func
- type L
- type Logger
- type Mapper
- type Option
- type Writer
Constants ¶
const ( // Short logging format Short = `{{.DT.Format "2006/01/02 15:04:05"}} {{.Level}} {{.Message}}` // WithMsec is a logging format with milliseconds WithMsec = `{{.DT.Format "2006/01/02 15:04:05.000"}} {{.Level}} {{.Message}}` // WithPkg is WithMsec logging format with caller package WithPkg = `{{.DT.Format "2006/01/02 15:04:05.000"}} {{.Level}} ({{.CallerPkg}}) {{.Message}}` // ShortDebug is WithMsec logging format with caller file and line ShortDebug = `{{.DT.Format "2006/01/02 15:04:05.000"}} {{.Level}} ({{.CallerFile}}:{{.CallerLine}}) {{.Message}}` // FuncDebug is WithMsec logging format with caller function FuncDebug = `{{.DT.Format "2006/01/02 15:04:05.000"}} {{.Level}} ({{.CallerFunc}}) {{.Message}}` // FullDebug is WithMsec logging format with caller file, line and function FullDebug = `{{.DT.Format "2006/01/02 15:04:05.000"}} {{.Level}} ({{.CallerFile}}:{{.CallerLine}} {{.CallerFunc}}) {{.Message}}` )
Variables ¶
var NoOp = Func(func(format string, args ...interface{}) {})
NoOp logger
var Std = Func(func(format string, args ...interface{}) { stdlog.Printf(format, args...) })
Std logger sends to std default logger directly
Functions ¶
func CallerFile ¶ added in v0.1.4
func CallerFile(l *Logger)
CallerFile adds caller info with file, and line number. Ignored if Format option used.
func CallerFunc ¶ added in v0.1.4
func CallerFunc(l *Logger)
CallerFunc adds caller info with function name. Ignored if Format option used.
func CallerPkg ¶ added in v0.3.0
func CallerPkg(l *Logger)
CallerPkg adds caller's package name. Ignored if Format option used.
func Fatalf ¶ added in v0.2.0
func Fatalf(format string, args ...interface{})
Fatalf simplifies replacement of std logger
func LevelBraces ¶ added in v0.1.4
func LevelBraces(l *Logger)
LevelBraces surrounds level with [], i.e. [INFO]. Ignored if Format option used.
func Msec ¶ added in v0.2.0
func Msec(l *Logger)
Msec adds .msec to timestamp. Ignored if Format option used.
func Printf ¶
func Printf(format string, args ...interface{})
Printf simplifies replacement of std logger
func SetupStdLogger ¶ added in v0.8.0
func SetupStdLogger(opts ...Option)
SetupStdLogger makes the default std logger with lgr.L
func StackTraceOnError ¶ added in v0.10.0
func StackTraceOnError(l *Logger)
StackTraceOnError turns on stack trace for ERROR level.
func ToStdLogger ¶ added in v0.5.0
ToStdLogger makes standard logger
Types ¶
type Func ¶
type Func func(format string, args ...interface{})
Func type is an adapter to allow the use of ordinary functions as Logger.
type L ¶
type L interface {
Logf(format string, args ...interface{})
}
L defines minimal interface used to log things
type Logger ¶
type Logger struct {
// contains filtered or unexported fields
}
Logger provided simple logger with basic support of levels. Thread safe
func New ¶
New makes new leveled logger. By default writes to stdout/stderr. default format: 2018/01/07 13:02:34.123 DEBUG some message 123
type Mapper ¶ added in v0.9.0
type Mapper struct { MessageFunc mapFunc // message mapper on all levels ErrorFunc mapFunc // message mapper on ERROR level WarnFunc mapFunc // message mapper on WARN level InfoFunc mapFunc // message mapper on INFO level DebugFunc mapFunc // message mapper on DEBUG level CallerFunc mapFunc // caller mapper, all levels TimeFunc mapFunc // time mapper, all levels }
Mapper defines optional functions to change elements of the logged message for each part, based on levels. Only some mapFunc can be defined, by default does nothing. Can be used to alter the output, for example making some part of the output colorful.
type Option ¶
type Option func(l *Logger)
Option func type
func CallerDepth ¶ added in v0.5.0
CallerDepth sets number of stack frame skipped for caller reporting, 0 by default
func Format ¶ added in v0.6.0
Format sets output layout, overwrites all options for individual parts, i.e. Caller*, Msec and LevelBraces