This commit is contained in:
2023-09-03 12:11:35 +10:00
parent 91147f073f
commit badd2e3543
10 changed files with 343 additions and 49 deletions

53
log/log.go Normal file
View File

@@ -0,0 +1,53 @@
package log
import (
"gitea.suyono.dev/suyono/wingmate/daemon"
"github.com/rs/zerolog"
"os"
)
type Level zerolog.Level
const (
Trace Level = Level(zerolog.TraceLevel)
Debug Level = Level(zerolog.DebugLevel)
Info Level = Level(zerolog.InfoLevel)
Warn Level = Level(zerolog.WarnLevel)
Error Level = Level(zerolog.ErrorLevel)
Fatal Level = Level(zerolog.FatalLevel)
Panic Level = Level(zerolog.PanicLevel)
)
var (
globalLevel Level = Error
logger zerolog.Logger
)
func init() {
SetGlobalLevel(globalLevel)
logger = zerolog.New(os.Stderr)
}
func (l Level) Print(a ...any) {
event := logger.WithLevel(zerolog.Level(l))
for _, i := range a {
switch v := i.(type) {
case daemon.ProcessLogEntry:
event = event.Str("type", v.Descriptor.InstanceType().String()).Str("origin", "child process").
Str("name", v.Descriptor.Name())
if v.Descriptor.InstanceType() == daemon.Cron {
event = event.Str("instance_name", v.Descriptor.InstanceName())
}
event.Str("entry", v.LogEntry).Send()
}
}
}
func Print(a ...any) {
globalLevel.Print(a...)
}
func SetGlobalLevel(l Level) {
globalLevel = l
zerolog.SetGlobalLevel(zerolog.Level(globalLevel))
}