mirror of
https://github.com/drakkan/sftpgo.git
synced 2025-12-08 07:10:56 +03:00
FTP: enable ftpserverlib logging and make debug mode configurable
This commit is contained in:
@@ -15,6 +15,7 @@ import (
|
||||
"path/filepath"
|
||||
"runtime"
|
||||
|
||||
ftpserverlog "github.com/fclairamb/ftpserverlib/log"
|
||||
"github.com/rs/zerolog"
|
||||
lumberjack "gopkg.in/natefinch/lumberjack.v2"
|
||||
)
|
||||
@@ -60,7 +61,8 @@ func (l *StdLoggerWrapper) Write(p []byte) (n int, err error) {
|
||||
|
||||
// LeveledLogger is a logger that accepts a message string and a variadic number of key-value pairs
|
||||
type LeveledLogger struct {
|
||||
Sender string
|
||||
Sender string
|
||||
additionalKeyVals []interface{}
|
||||
}
|
||||
|
||||
func addKeysAndValues(ev *zerolog.Event, keysAndValues ...interface{}) {
|
||||
@@ -81,6 +83,9 @@ func addKeysAndValues(ev *zerolog.Event, keysAndValues ...interface{}) {
|
||||
func (l *LeveledLogger) Error(msg string, keysAndValues ...interface{}) {
|
||||
ev := logger.Error()
|
||||
ev.Timestamp().Str("sender", l.Sender)
|
||||
if len(l.additionalKeyVals) > 0 {
|
||||
addKeysAndValues(ev, l.additionalKeyVals...)
|
||||
}
|
||||
addKeysAndValues(ev, keysAndValues...)
|
||||
ev.Msg(msg)
|
||||
}
|
||||
@@ -89,6 +94,9 @@ func (l *LeveledLogger) Error(msg string, keysAndValues ...interface{}) {
|
||||
func (l *LeveledLogger) Info(msg string, keysAndValues ...interface{}) {
|
||||
ev := logger.Info()
|
||||
ev.Timestamp().Str("sender", l.Sender)
|
||||
if len(l.additionalKeyVals) > 0 {
|
||||
addKeysAndValues(ev, l.additionalKeyVals...)
|
||||
}
|
||||
addKeysAndValues(ev, keysAndValues...)
|
||||
ev.Msg(msg)
|
||||
}
|
||||
@@ -97,6 +105,9 @@ func (l *LeveledLogger) Info(msg string, keysAndValues ...interface{}) {
|
||||
func (l *LeveledLogger) Debug(msg string, keysAndValues ...interface{}) {
|
||||
ev := logger.Debug()
|
||||
ev.Timestamp().Str("sender", l.Sender)
|
||||
if len(l.additionalKeyVals) > 0 {
|
||||
addKeysAndValues(ev, l.additionalKeyVals...)
|
||||
}
|
||||
addKeysAndValues(ev, keysAndValues...)
|
||||
ev.Msg(msg)
|
||||
}
|
||||
@@ -105,10 +116,21 @@ func (l *LeveledLogger) Debug(msg string, keysAndValues ...interface{}) {
|
||||
func (l *LeveledLogger) Warn(msg string, keysAndValues ...interface{}) {
|
||||
ev := logger.Warn()
|
||||
ev.Timestamp().Str("sender", l.Sender)
|
||||
if len(l.additionalKeyVals) > 0 {
|
||||
addKeysAndValues(ev, l.additionalKeyVals...)
|
||||
}
|
||||
addKeysAndValues(ev, keysAndValues...)
|
||||
ev.Msg(msg)
|
||||
}
|
||||
|
||||
// With returns a LeveledLogger with additional context specific keyvals
|
||||
func (l *LeveledLogger) With(keysAndValues ...interface{}) ftpserverlog.Logger {
|
||||
return &LeveledLogger{
|
||||
Sender: l.Sender,
|
||||
additionalKeyVals: append(l.additionalKeyVals, keysAndValues...),
|
||||
}
|
||||
}
|
||||
|
||||
// GetLogger get the configured logger instance
|
||||
func GetLogger() *zerolog.Logger {
|
||||
return &logger
|
||||
|
||||
Reference in New Issue
Block a user