feat: Add internal log verbosity setting

This commit is contained in:
Felicitas Pojtinger
2021-12-28 22:53:41 +01:00
parent 4fc7754505
commit edde7a6a48
3 changed files with 27 additions and 13 deletions

View File

@@ -126,7 +126,7 @@ var serveFTPCmd = &cobra.Command{
return err
}
jsonLogger := logging.NewJSONLogger()
jsonLogger := logging.NewJSONLogger(4)
readOps := operations.NewOperations(
config.BackendConfig{
@@ -210,7 +210,7 @@ var serveFTPCmd = &cobra.Command{
true, // FTP needs read permission for `STOR` command even if O_WRONLY is set
func(hdr *models.Header) {
jsonLogger.Debug("Header transform", hdr)
jsonLogger.Trace("Header transform", hdr)
},
jsonLogger,
)

View File

@@ -85,7 +85,7 @@ var serveHTTPCmd = &cobra.Command{
return err
}
jsonLogger := logging.NewJSONLogger()
jsonLogger := logging.NewJSONLogger(4)
readOps := operations.NewOperations(
config.BackendConfig{
@@ -132,7 +132,7 @@ var serveHTTPCmd = &cobra.Command{
false, // We never write
func(hdr *models.Header) {
jsonLogger.Debug("Header transform", hdr)
jsonLogger.Trace("Header transform", hdr)
},
jsonLogger,
)

View File

@@ -24,33 +24,47 @@ func printJSON(level string, event string, keyvals interface{}) {
Data: keyvals,
}) // We are ignoring JSON marshalling erorrs
fmt.Fprintln(os.Stderr, string(line))
_, _ = fmt.Fprintln(os.Stderr, string(line)) // We are ignoring printing errors in line wih the stdlib
}
type JSONLogger struct{}
type JSONLogger struct {
verbosity int
}
func NewJSONLogger() *JSONLogger {
return &JSONLogger{}
func NewJSONLogger(verbosity int) *JSONLogger {
return &JSONLogger{
verbosity: verbosity,
}
}
func (l JSONLogger) Trace(event string, keyvals ...interface{}) {
printJSON("TRACE", event, keyvals)
if l.verbosity >= 4 {
printJSON("TRACE", event, keyvals)
}
}
func (l JSONLogger) Debug(event string, keyvals ...interface{}) {
printJSON("DEBUG", event, keyvals)
if l.verbosity >= 3 {
printJSON("DEBUG", event, keyvals)
}
}
func (l JSONLogger) Info(event string, keyvals ...interface{}) {
printJSON("INFO", event, keyvals)
if l.verbosity >= 2 {
printJSON("INFO", event, keyvals)
}
}
func (l JSONLogger) Warn(event string, keyvals ...interface{}) {
printJSON("WARN", event, keyvals)
if l.verbosity >= 1 {
printJSON("WARN", event, keyvals)
}
}
func (l JSONLogger) Error(event string, keyvals ...interface{}) {
printJSON("ERROR", event, keyvals)
if l.verbosity >= 0 {
printJSON("ERROR", event, keyvals)
}
}
func (l JSONLogger) With(keyvals ...interface{}) golog.Logger {