slog.go 744 B

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. package log
  2. import (
  3. "log/slog"
  4. )
  5. func toSlogLevel(level Level) (slog.Level, bool) {
  6. switch level {
  7. case Never:
  8. return slog.LevelDebug - 1, false
  9. case NotSet:
  10. return slog.LevelWarn - 1, false
  11. case Debug:
  12. return slog.LevelDebug, true
  13. case Info:
  14. return slog.LevelInfo, true
  15. case Warning:
  16. return slog.LevelWarn, true
  17. case Error:
  18. return slog.LevelError, true
  19. case Critical:
  20. return slog.LevelError + 1, true
  21. case disabled:
  22. return slog.LevelDebug - 1, false
  23. default:
  24. panic(level)
  25. }
  26. }
  27. func fromSlogLevel(sl slog.Level) Level {
  28. switch sl {
  29. case slog.LevelDebug:
  30. return Debug
  31. case slog.LevelInfo:
  32. return Info
  33. case slog.LevelWarn:
  34. return Warning
  35. case slog.LevelError:
  36. return Error
  37. default:
  38. panic(sl)
  39. }
  40. }