mirror of
https://github.com/taigrr/log-socket
synced 2025-01-18 04:53:14 -08:00
92 lines
1.6 KiB
Go
92 lines
1.6 KiB
Go
package log
|
|
|
|
import "time"
|
|
|
|
type (
|
|
LogWriter chan Entry
|
|
Level int
|
|
)
|
|
|
|
const (
|
|
LTrace Level = iota
|
|
LDebug
|
|
LInfo
|
|
LNotice
|
|
LWarn
|
|
LError
|
|
LPanic
|
|
LFatal
|
|
)
|
|
|
|
type Client struct {
|
|
LogLevel Level `json:"level"`
|
|
writer LogWriter
|
|
initialized bool
|
|
}
|
|
|
|
type Entry struct {
|
|
Timestamp time.Time `json:"timestamp"`
|
|
Output string `json:"output"`
|
|
File string `json:"file"`
|
|
Level string `json:"level"`
|
|
level Level
|
|
}
|
|
|
|
func Default() *Logger {
|
|
l := Logger{FileInfoDepth: 0, SubLoggers: []LevelLogger{}}
|
|
return &l
|
|
}
|
|
|
|
func EnrichLogger(weak StdLogger) gapLogger {
|
|
return gapLogger{subLogger: weak}
|
|
}
|
|
|
|
type Logger struct {
|
|
FileInfoDepth int
|
|
SubLoggers []LevelLogger
|
|
}
|
|
type gapLogger struct {
|
|
subLogger StdLogger
|
|
}
|
|
type (
|
|
StdLogger interface {
|
|
Println(v ...any)
|
|
Printf(format string, v ...any)
|
|
Print(v ...any)
|
|
Panic(v ...any)
|
|
Panicf(format string, v ...any)
|
|
Panicln(v ...any)
|
|
Fatal(v ...any)
|
|
Fatalf(format string, v ...any)
|
|
Fatalln(v ...any)
|
|
}
|
|
LevelLogger interface {
|
|
Debug(v ...any)
|
|
Debugf(format string, v ...any)
|
|
Error(v ...any)
|
|
Errorf(format string, v ...any)
|
|
Errorln(v ...any)
|
|
Fatal(v ...any)
|
|
Fatalf(format string, v ...any)
|
|
Fatalln(v ...any)
|
|
Info(v ...any)
|
|
Infof(format string, v ...any)
|
|
Infoln(v ...any)
|
|
Notice(v ...any)
|
|
Noticef(format string, v ...any)
|
|
Noticeln(v ...any)
|
|
Panic(v ...any)
|
|
Panicf(format string, v ...any)
|
|
Panicln(v ...any)
|
|
Print(v ...any)
|
|
Printf(format string, v ...any)
|
|
Println(v ...any)
|
|
Trace(v ...any)
|
|
Tracef(format string, v ...any)
|
|
Traceln(v ...any)
|
|
Warn(v ...any)
|
|
Warnf(format string, v ...any)
|
|
Warnln(v ...any)
|
|
}
|
|
)
|