log.go 885 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  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(data string, level LogLevel) {
  19. if level < logLevel {
  20. return
  21. }
  22. log.Print(data)
  23. }
  24. func Debug(format string, v ...interface{}) {
  25. data := fmt.Sprintf(format, v)
  26. writeLog("[Debug]"+data, DebugLevel)
  27. }
  28. func Info(format string, v ...interface{}) {
  29. data := fmt.Sprintf(format, v)
  30. writeLog("[Info]"+data, InfoLevel)
  31. }
  32. func Warning(format string, v ...interface{}) {
  33. data := fmt.Sprintf(format, v)
  34. writeLog("[Warning]"+data, WarningLevel)
  35. }
  36. func Error(format string, v ...interface{}) error {
  37. data := fmt.Sprintf(format, v)
  38. writeLog("[Error]"+data, ErrorLevel)
  39. return errors.New(data)
  40. }