log

package
v0.3.0 Latest Latest
Warning

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

Go to latest
Published: Nov 21, 2023 License: Apache-2.0 Imports: 11 Imported by: 0

Documentation

Overview

log package supplies more advanced features than go orign log package.

It supports log different level: trace, debug, info, warn, error, fatal.

It also supports different log handlers which you can log to stdout, file, socket, etc...

Use

//log with different level
log.Info("hello world")
log.Error("hello world")

//create a logger with specified handler
h := NewStreamHandler(os.Stdout)
l := log.NewDefault(h)
l.Info("hello world")

Index

Constants

View Source
const (
	WhenSecond = iota
	WhenMinute
	WhenHour
	WhenDay
)
View Source
const (
	LevelTrace = iota
	LevelDebug
	LevelInfo
	LevelWarn
	LevelError
	LevelFatal
	LevelBuss
)

log level, from low to high, more high means more serious

View Source
const (
	Ltime  = 1 << iota //time format "2006/01/02 15:04:05"
	Lfile              //file.go:123
	Llevel             //[Trace|Debug|Info...]
)
View Source
const (
	RollTypeDay = iota
)
View Source
const TimeFormat = "2006/01/02 15:04:05"

Variables

View Source
var LevelName [7]string = [7]string{"TRACE", "DEBUG", "INFO", "WARN", "ERROR", "FATAL", "BUSS"}
View Source
var LogLevelString = map[string]int{
	"trace": LevelTrace,
	"debug": LevelDebug,
	"info":  LevelInfo,
	"warn":  LevelWarn,
	"error": LevelError,
	"fatal": LevelFatal,
	"buss":  LevelBuss,
}
View Source
var (
	TimePrefix = &struct{}{}
)

Functions

func Buss

func Buss(format string, v ...interface{})

func Close

func Close()

func DLOG

func DLOG(fileName string, format string, v ...interface{})

func Debug

func Debug(format string, v ...interface{})

func DebugE

func DebugE(format string, v ...interface{}) error

func DebugX

func DebugX(delta int, format string, v ...interface{})

func Error

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

func ErrorE

func ErrorE(format string, v ...interface{}) error

func ErrorX

func ErrorX(delta int, format string, v ...interface{})

func Fatal

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

func FatalE

func FatalE(format string, v ...interface{}) error

func FatalX

func FatalX(delta int, format string, v ...interface{})

func GetLevel

func GetLevel() int

func Info

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

func InfoE

func InfoE(format string, v ...interface{}) error

func InfoX

func InfoX(delta int, format string, v ...interface{})

func SetLevel

func SetLevel(level int)

func SetLevelS

func SetLevelS(level string)

func TimeLogClose

func TimeLogClose()

func TimeLogInit

func TimeLogInit(logDir string) error

func Trace

func Trace(format string, v ...interface{})

func TraceE

func TraceE(format string, v ...interface{}) error

func TraceX

func TraceX(delta int, format string, v ...interface{})

func Warn

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

func WarnE

func WarnE(format string, v ...interface{}) error

func WarnX

func WarnX(delta int, format string, v ...interface{})

Types

type FileHandler

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

FileHandler writes log to a file.

func NewFileHandler

func NewFileHandler(fileName string, flag int) (*FileHandler, error)

func (*FileHandler) Close

func (h *FileHandler) Close() error

func (*FileHandler) Write

func (h *FileHandler) Write(b []byte) (n int, err error)

type Handler

type Handler interface {
	Write(p []byte) (n int, err error)
	Close() error
}

Handler writes logs to somewhere

type Logger

type Logger struct {
	sync.Mutex
	// contains filtered or unexported fields
}

func GetLogger

func GetLogger(name string) *Logger

like the python logging.getLogger return an Gloabl-logger and save in the memory

func New

func New(handler Handler, flag int) *Logger

new a logger with specified handler and flag

func NewDefault

func NewDefault(handler Handler) *Logger

new a default logger with specified handler and flag: Ltime|Lfile|Llevel

func StdLogger

func StdLogger() *Logger

func (*Logger) Buss

func (l *Logger) Buss(format string, v ...interface{})

func (*Logger) Close

func (l *Logger) Close()

func (*Logger) Debug

func (l *Logger) Debug(format string, v ...interface{})

log with Debug level

func (*Logger) Error

func (l *Logger) Error(format string, v ...interface{})

log with error level

func (*Logger) Fatal

func (l *Logger) Fatal(format string, v ...interface{})

log with fatal level

func (*Logger) Info

func (l *Logger) Info(format string, v ...interface{})

log with info level

func (*Logger) Level

func (l *Logger) Level() int

func (*Logger) Output

func (l *Logger) Output(callDepth int, level int, format string, v ...interface{})

a low interface, maybe you can use it for your special log format but it may be not exported later......

func (*Logger) SetHandler

func (l *Logger) SetHandler(h Handler)

func (*Logger) SetLevel

func (l *Logger) SetLevel(level int)

set log level, any log level less than it will not log

func (*Logger) Trace

func (l *Logger) Trace(format string, v ...interface{})

log with Trace level

func (*Logger) Warn

func (l *Logger) Warn(format string, v ...interface{})

log with warn level

type NullHandler

type NullHandler struct {
}

NullHandler does nothing, it discards anything.

func NewNullHandler

func NewNullHandler() (*NullHandler, error)

func (*NullHandler) Close

func (h *NullHandler) Close() error

func (*NullHandler) Write

func (h *NullHandler) Write(b []byte) (n int, err error)

type RotatingFileHandler

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

RotatingFileHandler writes log a file, if file size exceeds maxBytes, it will backup current file and open a new one.

max backup file number is set by backupCount, it will delete oldest if backups too many.

func NewRotatingFileHandler

func NewRotatingFileHandler(fileName string, maxBytes int, backupCount int) (*RotatingFileHandler, error)

func (*RotatingFileHandler) Close

func (h *RotatingFileHandler) Close() error

func (*RotatingFileHandler) Write

func (h *RotatingFileHandler) Write(p []byte) (n int, err error)

type SocketHandler

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

SocketHandler writes log to a connectionl. Network protocol is simple: log length + log | log length + log. log length is uint32, bigendian. you must implement your own log server, maybe you can use logd instead simply.

func NewSocketHandler

func NewSocketHandler(protocol string, addr string) (*SocketHandler, error)

func (*SocketHandler) Close

func (h *SocketHandler) Close() error

func (*SocketHandler) Write

func (h *SocketHandler) Write(p []byte) (n int, err error)

type StreamHandler

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

StreamHandler writes logs to a specified io Writer, maybe stdout, stderr, etc...

func NewStreamHandler

func NewStreamHandler(w io.Writer) (*StreamHandler, error)

func (*StreamHandler) Close

func (h *StreamHandler) Close() error

func (*StreamHandler) Write

func (h *StreamHandler) Write(b []byte) (n int, err error)

type TimeRollFile

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

func NewTimeRollFile

func NewTimeRollFile(fileName string, fileDir string, rollTimeType int) *TimeRollFile

func (*TimeRollFile) Close

func (self *TimeRollFile) Close()

func (*TimeRollFile) Write

func (self *TimeRollFile) Write(logTime int64, content []byte) error

func (*TimeRollFile) WriteString

func (self *TimeRollFile) WriteString(logTime int64, content string) error

type TimeRotatingFileHandler

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

TimeRotatingFileHandler writes log to a file, it will backup current and open a new one, with a period time you sepecified.

refer: http://docs.python.org/2/library/logging.handlers.html. same like python TimedRotatingFileHandler.

func NewTimeRotatingFileHandler

func NewTimeRotatingFileHandler(baseName string, when int8, interval int) (*TimeRotatingFileHandler, error)

func (*TimeRotatingFileHandler) Close

func (h *TimeRotatingFileHandler) Close() error

func (*TimeRotatingFileHandler) Write

func (h *TimeRotatingFileHandler) Write(b []byte) (n int, err error)

Jump to

Keyboard shortcuts

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