level.go 952 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. package log
  2. import (
  3. E "github.com/sagernet/sing/common/exceptions"
  4. )
  5. type Level = uint8
  6. const (
  7. LevelPanic Level = iota
  8. LevelFatal
  9. LevelError
  10. LevelWarn
  11. LevelInfo
  12. LevelDebug
  13. LevelTrace
  14. )
  15. func FormatLevel(level Level) string {
  16. switch level {
  17. case LevelTrace:
  18. return "trace"
  19. case LevelDebug:
  20. return "debug"
  21. case LevelInfo:
  22. return "info"
  23. case LevelWarn:
  24. return "warn"
  25. case LevelError:
  26. return "error"
  27. case LevelFatal:
  28. return "fatal"
  29. case LevelPanic:
  30. return "panic"
  31. default:
  32. return "unknown"
  33. }
  34. }
  35. func ParseLevel(level string) (Level, error) {
  36. switch level {
  37. case "trace":
  38. return LevelTrace, nil
  39. case "debug":
  40. return LevelDebug, nil
  41. case "info":
  42. return LevelInfo, nil
  43. case "warn", "warning":
  44. return LevelWarn, nil
  45. case "error":
  46. return LevelError, nil
  47. case "fatal":
  48. return LevelFatal, nil
  49. case "panic":
  50. return LevelPanic, nil
  51. default:
  52. return LevelTrace, E.New("unknown log level: ", level)
  53. }
  54. }