diff --git a/cmd/stfs/cmd/serve_ftp.go b/cmd/stfs/cmd/serve_ftp.go index ceecba7..cedab94 100644 --- a/cmd/stfs/cmd/serve_ftp.go +++ b/cmd/stfs/cmd/serve_ftp.go @@ -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, ) diff --git a/cmd/stfs/cmd/serve_http.go b/cmd/stfs/cmd/serve_http.go index b6283d1..27464de 100644 --- a/cmd/stfs/cmd/serve_http.go +++ b/cmd/stfs/cmd/serve_http.go @@ -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, ) diff --git a/internal/logging/json.go b/internal/logging/json.go index 898ef54..9c3ce17 100644 --- a/internal/logging/json.go +++ b/internal/logging/json.go @@ -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 {