feat: update log package

This commit is contained in:
loveuer 2024-06-06 10:39:16 +08:00
parent 58f0560042
commit c9ace7c105
3 changed files with 65 additions and 0 deletions

View File

@ -12,6 +12,15 @@ var (
fmt.Printf(prefix+"| "+timestamp+" | "+msg+"\n", data...) fmt.Printf(prefix+"| "+timestamp+" | "+msg+"\n", data...)
} }
panicLogger = func(prefix, timestamp, msg string, data ...any) {
panic(fmt.Sprintf(prefix+"| "+timestamp+" | "+msg+"\n", data...))
}
fatalLogger = func(prefix, timestamp, msg string, data ...any) {
fmt.Printf(prefix+"| "+timestamp+" | "+msg+"\n", data...)
os.Exit(1)
}
defaultLogger = &logger{ defaultLogger = &logger{
Mutex: sync.Mutex{}, Mutex: sync.Mutex{},
timeFormat: "2006-01-02T15:04:05", timeFormat: "2006-01-02T15:04:05",
@ -21,6 +30,8 @@ var (
info: normalLogger, info: normalLogger,
warn: normalLogger, warn: normalLogger,
error: normalLogger, error: normalLogger,
panic: panicLogger,
fatal: fatalLogger,
} }
) )
@ -46,3 +57,11 @@ func Warn(msg string, data ...any) {
func Error(msg string, data ...any) { func Error(msg string, data ...any) {
defaultLogger.Error(msg, data...) defaultLogger.Error(msg, data...)
} }
func Panic(msg string, data ...any) {
defaultLogger.Panic(msg, data...)
}
func Fatal(msg string, data ...any) {
defaultLogger.Fatal(msg, data...)
}

View File

@ -14,6 +14,8 @@ const (
LogLevelInfo LogLevelInfo
LogLevelWarn LogLevelWarn
LogLevelError LogLevelError
LogLevelPanic
LogLevelFatal
) )
type logger struct { type logger struct {
@ -25,10 +27,13 @@ type logger struct {
info func(prefix, timestamp, msg string, data ...any) info func(prefix, timestamp, msg string, data ...any)
warn func(prefix, timestamp, msg string, data ...any) warn func(prefix, timestamp, msg string, data ...any)
error func(prefix, timestamp, msg string, data ...any) error func(prefix, timestamp, msg string, data ...any)
panic func(prefix, timestamp, msg string, data ...any)
fatal func(prefix, timestamp, msg string, data ...any)
} }
var ( var (
red = color.New(color.FgRed) red = color.New(color.FgRed)
hired = color.New(color.FgHiRed)
green = color.New(color.FgGreen) green = color.New(color.FgGreen)
yellow = color.New(color.FgYellow) yellow = color.New(color.FgYellow)
white = color.New(color.FgWhite) white = color.New(color.FgWhite)
@ -67,6 +72,18 @@ func (l *logger) SetLogLevel(level LogLevel) {
} else { } else {
l.error = normalLogger l.error = normalLogger
} }
if level > LogLevelPanic {
l.panic = nilLogger
} else {
l.panic = panicLogger
}
if level > LogLevelFatal {
l.fatal = nilLogger
} else {
l.fatal = fatalLogger
}
} }
func (l *logger) Debug(msg string, data ...any) { func (l *logger) Debug(msg string, data ...any) {
@ -85,6 +102,14 @@ func (l *logger) Error(msg string, data ...any) {
l.error(red.Sprint("Error "), time.Now().Format(l.timeFormat), msg, data...) l.error(red.Sprint("Error "), time.Now().Format(l.timeFormat), msg, data...)
} }
func (l *logger) Panic(msg string, data ...any) {
l.panic(hired.Sprint("Panic "), time.Now().Format(l.timeFormat), msg, data...)
}
func (l *logger) Fatal(msg string, data ...any) {
l.fatal(hired.Sprint("Fatal "), time.Now().Format(l.timeFormat), msg, data...)
}
type WroteLogger interface { type WroteLogger interface {
Info(msg string, data ...any) Info(msg string, data ...any)
} }

21
log/new.go Normal file
View File

@ -0,0 +1,21 @@
package log
import (
"os"
"sync"
)
func New() *logger {
return &logger{
Mutex: sync.Mutex{},
timeFormat: "2006-01-02T15:04:05",
writer: os.Stdout,
level: LogLevelInfo,
debug: nilLogger,
info: normalLogger,
warn: normalLogger,
error: normalLogger,
panic: panicLogger,
fatal: fatalLogger,
}
}