2
0
mirror of https://github.com/acepanel/panel.git synced 2026-02-04 19:37:18 +08:00
Files
panel/pkg/cron/logger.go
2024-10-12 02:25:41 +08:00

44 lines
909 B
Go

package cron
import "go.uber.org/zap"
type Logger struct {
log *zap.Logger
debug bool
}
func NewLogger(log *zap.Logger, debug bool) *Logger {
return &Logger{
debug: debug,
log: log,
}
}
func (log *Logger) Info(msg string, keysAndValues ...any) {
if !log.debug {
return
}
log.log.Info(msg, log.toZapFields(keysAndValues...)...)
}
func (log *Logger) Error(err error, msg string, keysAndValues ...any) {
fields := log.toZapFields(keysAndValues...)
fields = append(fields, zap.Error(err))
log.log.Error(msg, fields...)
}
func (log *Logger) toZapFields(keysAndValues ...any) []zap.Field {
fields := make([]zap.Field, 0, len(keysAndValues)/2)
for i := 0; i < len(keysAndValues); i += 2 {
if i+1 < len(keysAndValues) {
key, okKey := keysAndValues[i].(string)
value := keysAndValues[i+1]
if okKey {
fields = append(fields, zap.Any(key, value))
}
}
}
return fields
}