log

package module
v0.1.3 Latest Latest
Warning

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

Go to latest
Published: Mar 15, 2022 License: Apache-2.0 Imports: 8 Imported by: 5

README

lipence/log

Package log is a simple wrap of native log package, which extract supports message level, logger name and additional data.

Interface

package log

import stdLog "log"

type Logger interface {
	Debug(v ...interface{}) // output as level Debug
	Debugf(format string, v ...interface{})

	Info(v ...interface{}) // output as level Info
	Infof(format string, v ...interface{})

	Warn(v ...interface{}) // output as level Warn
	Warnf(format string, v ...interface{})

	Error(v ...interface{}) // output as level Error
	Errorf(format string, v ...interface{})

	Fatal(v ...interface{}) // output as level Fatal (will cause os.exit)
	Fatalf(format string, v ...interface{})

	Panic(v ...interface{}) // output as level Panic (will cause panic)
	Panicf(format string, v ...interface{})

	Print(v ...interface{}) // alias of `Info` / `Infof`
	Printf(format string, v ...interface{})

	With(v ...interface{}) Logger // fork current logger and add data
	WithName(name string) Logger  // fork current logger and change name
	StdLogger() *stdLog.Logger    // get underlying std logger
	AddDepth(depth int) Logger    // set caller skip (offset)
	Sync()                        // write data
}

type WithSyncer interface { // optional for external logger
	Logger
	Sync() // synchronize logs to be output
}

type WithDepth interface { // optional for external logger
	Logger
	AddDepth(depth int) Logger // change callstack depth
}

Usage

OnInit: package automatically create *simple instance as default logger

BeforeStartup (optional): replace default logger with external logger: e.g.

func main() {
	log.Use(anotherLoggerPkg.New())
}

Running: use logger: e.g.

func apiPutOrderHandler(ctx context.Context) {
	log.Info("start processing")
	// or with format
	log.Warnf("unexpected things happed")
	// or with some data
	log.With("transId", ctx.Value("transId")).Error("failed")
}

NewTransaction (optional): fork new logger instance and add data: e.g.

func apiPutOrderHandler(ctx context.Context) {
	logger := log.With("api", "putOrder")
	logger.Debug("start processing")
}

BeforeShutdown: sync log: e.g.

func BeforeShutdown() {
	log.Sync()
}

Changelog

  • v0.1.0 Initial Version

Contact

Kenta Lee ( kenta.li@cardinfolink.com )

License

lipence/log source code is available under the Apache-2.0 License

Documentation

Index

Constants

View Source
const (
	ContextKeyLogger contextKey = "__logger__"
)

Variables

This section is empty.

Functions

func Context

func Context(ctx context.Context, l Logger, with ...interface{}) context.Context

func Debug

func Debug(m ...interface{})

func Debugf

func Debugf(format string, m ...interface{})

func Error

func Error(m ...interface{})

func Errorf

func Errorf(format string, m ...interface{})

func Fatal

func Fatal(m ...interface{})

func Fatalf

func Fatalf(format string, m ...interface{})

func Info

func Info(m ...interface{})

func Infof

func Infof(format string, m ...interface{})

func NewSimpleLogger added in v0.1.0

func NewSimpleLogger(name string, output io.Writer, data [][2]string) *simple

func Panic

func Panic(m ...interface{})

func Panicf

func Panicf(format string, m ...interface{})

func Print

func Print(m ...interface{})

func Printf

func Printf(format string, m ...interface{})

func StdLogger

func StdLogger() *stdLog.Logger

func Sync added in v0.1.0

func Sync()

func Use added in v0.1.0

func Use(l Logger)

func Warn

func Warn(m ...interface{})

func Warnf

func Warnf(format string, m ...interface{})

Types

type Logger

type Logger interface {
	Debug(v ...interface{})
	Debugf(format string, v ...interface{})

	Info(v ...interface{})
	Infof(format string, v ...interface{})

	Warn(v ...interface{})
	Warnf(format string, v ...interface{})

	Error(v ...interface{})
	Errorf(format string, v ...interface{})

	Fatal(v ...interface{})
	Fatalf(format string, v ...interface{})

	Panic(v ...interface{})
	Panicf(format string, v ...interface{})

	Print(v ...interface{})
	Printf(format string, v ...interface{})

	With(v ...interface{}) Logger
	WithName(name string) Logger
	AddDepth(depth int) Logger
	StdLogger() *stdLog.Logger

	Sync()
}

func C

func C(ctx context.Context) (l Logger)

func Current added in v0.1.0

func Current() Logger

func With

func With(v ...interface{}) Logger

func WithName added in v0.1.2

func WithName(name string) Logger

Directories

Path Synopsis
zap module

Jump to

Keyboard shortcuts

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