logger.go 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. package logger
  2. import (
  3. "log"
  4. )
  5. type LogLevel int
  6. const (
  7. LevelNone LogLevel = 0
  8. LevelError LogLevel = 1
  9. LevelWarn LogLevel = 2
  10. LevelInfo LogLevel = 3
  11. LevelVerbose LogLevel = 4
  12. LevelDebug LogLevel = 5
  13. )
  14. type Logger struct {
  15. Level LogLevel
  16. }
  17. func (l *Logger) Printf(str string, args ...interface{}) {
  18. log.Printf(str, args...)
  19. }
  20. func (l *Logger) Fatal(str string, args ...interface{}) {
  21. log.Fatalf(str, args...)
  22. }
  23. func (l *Logger) Error(str string, args ...interface {}) {
  24. if l.Level >= LevelError {
  25. l.Printf(str, args...)
  26. }
  27. }
  28. func (l *Logger) Warn(str string, args ...interface {}) {
  29. if l.Level >= LevelWarn {
  30. l.Printf(str, args...)
  31. }
  32. }
  33. func (l *Logger) Info(str string, args ...interface {}) {
  34. if l.Level >= LevelInfo {
  35. l.Printf(str, args...)
  36. }
  37. }
  38. func (l *Logger) Verbose(str string, args ...interface {}) {
  39. if l.Level >= LevelVerbose {
  40. l.Printf(str, args...)
  41. }
  42. }
  43. func (l *Logger) Debug(str string, args ...interface {}) {
  44. if l.Level >= LevelDebug {
  45. l.Printf(str, args...)
  46. }
  47. }
  48. func CreateLogger(level LogLevel) *Logger {
  49. var l = Logger{
  50. Level: level,
  51. }
  52. return &l
  53. }