package l import ( "encoding/json" "fmt" ) type Verbose bool func V(level int) Verbose { if logger.verboseLevel < level { return Verbose(false) } return Verbose(true) } func (v Verbose) Debug(msgs ...interface{}) { if !v { return } if logger.logLevel > LevelDebug { return } logMsg("DEBUG", msgs...) } func (v Verbose) Debugf(msgs ...interface{}) { if !v { return } if logger.logLevel > LevelDebug { return } if len(msgs) < 2 { logMsg("DEBUG", msgs...) return } logMsg("DEBUG", fmt.Sprintf(msgs[0].(string), msgs[1:]...)) } func (v Verbose) Debugj(msgs ...interface{}) { if !v { return } if logger.logLevel > LevelDebug { return } jsonMsg := []interface{}{} for _, msg := range msgs { b, err := json.MarshalIndent(msg, "", " ") if err != nil { jsonMsg = append(jsonMsg, msg) } else { jsonMsg = append(jsonMsg, string(b)) } } logMsg("DEBUG", jsonMsg...) }