mirror of
https://github.com/drakkan/sftpgo.git
synced 2024-11-25 17:10:28 +00:00
66 lines
1.5 KiB
Go
66 lines
1.5 KiB
Go
package logger
|
|
|
|
import (
|
|
"io"
|
|
"log"
|
|
|
|
"github.com/hashicorp/go-hclog"
|
|
"github.com/rs/zerolog"
|
|
)
|
|
|
|
type HCLogAdapter struct {
|
|
hclog.Logger
|
|
}
|
|
|
|
func (l *HCLogAdapter) Log(level hclog.Level, msg string, args ...interface{}) {
|
|
var ev *zerolog.Event
|
|
switch level {
|
|
case hclog.Info:
|
|
ev = logger.Info()
|
|
case hclog.Warn:
|
|
ev = logger.Warn()
|
|
case hclog.Error:
|
|
ev = logger.Error()
|
|
default:
|
|
ev = logger.Debug()
|
|
}
|
|
ev.Timestamp().Str("sender", l.Name())
|
|
addKeysAndValues(ev, args...)
|
|
ev.Msg(msg)
|
|
}
|
|
|
|
func (l *HCLogAdapter) Trace(msg string, args ...interface{}) {
|
|
l.Log(hclog.Debug, msg, args...)
|
|
}
|
|
|
|
func (l *HCLogAdapter) Debug(msg string, args ...interface{}) {
|
|
l.Log(hclog.Debug, msg, args...)
|
|
}
|
|
|
|
func (l *HCLogAdapter) Info(msg string, args ...interface{}) {
|
|
l.Log(hclog.Info, msg, args...)
|
|
}
|
|
|
|
func (l *HCLogAdapter) Warn(msg string, args ...interface{}) {
|
|
l.Log(hclog.Warn, msg, args...)
|
|
}
|
|
|
|
func (l *HCLogAdapter) Error(msg string, args ...interface{}) {
|
|
l.Log(hclog.Error, msg, args...)
|
|
}
|
|
|
|
func (l *HCLogAdapter) With(args ...interface{}) hclog.Logger {
|
|
return &HCLogAdapter{Logger: l.Logger.With(args...)}
|
|
}
|
|
|
|
func (l *HCLogAdapter) Named(name string) hclog.Logger {
|
|
return &HCLogAdapter{Logger: l.Logger.Named(name)}
|
|
}
|
|
|
|
func (l *HCLogAdapter) StandardLogger(opts *hclog.StandardLoggerOptions) *log.Logger {
|
|
return log.New(&StdLoggerWrapper{Sender: l.Name()}, "", 0)
|
|
}
|
|
|
|
func (l *HCLogAdapter) StandardWriter(opts *hclog.StandardLoggerOptions) io.Writer {
|
|
return &StdLoggerWrapper{Sender: l.Name()}
|
|
}
|