log.go 972 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. package log
  2. import (
  3. "errors"
  4. "fmt"
  5. "log"
  6. )
  7. const (
  8. DebugLevel = LogLevel(0)
  9. InfoLevel = LogLevel(1)
  10. WarningLevel = LogLevel(2)
  11. ErrorLevel = LogLevel(3)
  12. )
  13. var logLevel = WarningLevel
  14. type LogLevel int
  15. func SetLogLevel(level LogLevel) {
  16. logLevel = level
  17. }
  18. func writeLog(level LogLevel, prefix, format string, v ...interface{}) string {
  19. if level < logLevel {
  20. return ""
  21. }
  22. var data string
  23. if v == nil || len(v) == 0 {
  24. data = format
  25. } else {
  26. data = fmt.Sprintf(format, v...)
  27. }
  28. log.Print(prefix + data)
  29. return data
  30. }
  31. func Debug(format string, v ...interface{}) {
  32. writeLog(DebugLevel, "[Debug]", format, v...)
  33. }
  34. func Info(format string, v ...interface{}) {
  35. writeLog(InfoLevel, "[Info]", format, v...)
  36. }
  37. func Warning(format string, v ...interface{}) {
  38. writeLog(WarningLevel, "[Warning]", format, v...)
  39. }
  40. func Error(format string, v ...interface{}) error {
  41. data := writeLog(ErrorLevel, "[Error]", format, v...)
  42. return errors.New(data)
  43. }