mirror of
https://github.com/oarkflow/mq.git
synced 2025-09-26 20:11:16 +08:00
61 lines
1.4 KiB
Go
61 lines
1.4 KiB
Go
// phuslulog.go
|
|
package logger
|
|
|
|
import "github.com/oarkflow/log"
|
|
|
|
// DefaultLogger implements the Logger interface using phuslu/log.
|
|
type DefaultLogger struct {
|
|
logger *log.Logger
|
|
}
|
|
|
|
func NewDefaultLogger(loggers ...*log.Logger) *DefaultLogger {
|
|
var logger *log.Logger
|
|
if len(loggers) > 0 {
|
|
logger = loggers[0]
|
|
} else {
|
|
logger = &log.DefaultLogger
|
|
}
|
|
return &DefaultLogger{logger: logger}
|
|
}
|
|
|
|
// Debug logs a debug-level message.
|
|
func (l *DefaultLogger) Debug(msg string, fields ...Field) {
|
|
if l.logger == nil {
|
|
return
|
|
}
|
|
l.logger.Debug().Map(flattenFields(fields)).Msg(msg)
|
|
}
|
|
|
|
// Info logs an info-level message.
|
|
func (l *DefaultLogger) Info(msg string, fields ...Field) {
|
|
if l.logger == nil {
|
|
return
|
|
}
|
|
l.logger.Info().Map(flattenFields(fields)).Msg(msg)
|
|
}
|
|
|
|
// Warn logs a warn-level message.
|
|
func (l *DefaultLogger) Warn(msg string, fields ...Field) {
|
|
if l.logger == nil {
|
|
return
|
|
}
|
|
l.logger.Warn().Map(flattenFields(fields)).Msg(msg)
|
|
}
|
|
|
|
// Error logs an error-level message.
|
|
func (l *DefaultLogger) Error(msg string, fields ...Field) {
|
|
if l.logger == nil {
|
|
return
|
|
}
|
|
l.logger.Error().Map(flattenFields(fields)).Msg(msg)
|
|
}
|
|
|
|
// flattenFields converts a slice of Field into a slice of any key/value pairs.
|
|
func flattenFields(fields []Field) map[string]any {
|
|
kv := make(map[string]any)
|
|
for _, field := range fields {
|
|
kv[field.Key] = field.Value
|
|
}
|
|
return kv
|
|
}
|