log_msg.go 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. // package log_msg -- сообщение логгера
  2. package log_msg
  3. import (
  4. "fmt"
  5. . "gitp78su.ipnodns.ru/svi/kern/v4/lev0/kalias"
  6. . "gitp78su.ipnodns.ru/svi/kern/v4/lev0/ktypes"
  7. . "gitp78su.ipnodns.ru/svi/kern/v4/lev1/helpers"
  8. )
  9. const (
  10. DEBUG = -3
  11. INFO = -2
  12. WARN = -1
  13. ERROR = 0
  14. )
  15. // logMsg -- сообщение логгера
  16. type logMsg struct {
  17. level string
  18. createAt ATime
  19. msg string
  20. }
  21. // NewLogMsg -- возвращает новое сообщение логгера
  22. func NewLogMsg(level int, msg string) ILogMsg {
  23. sf := &logMsg{
  24. createAt: TimeNowStr(),
  25. msg: msg,
  26. }
  27. sf.check(level)
  28. return sf
  29. }
  30. // String -- возвращает форматированное сообщение лога
  31. func (sf *logMsg) String() string {
  32. strOut := fmt.Sprintf("%v %v %v", sf.level, sf.createAt, sf.msg)
  33. return strOut
  34. }
  35. // Msg -- возвращает хранимое сообщение
  36. func (sf *logMsg) Msg() string {
  37. return sf.msg
  38. }
  39. // Level -- возвращает уровень сообщения
  40. func (sf *logMsg) Level() string {
  41. return sf.level
  42. }
  43. // CreateAt -- когда сообщение создано
  44. func (sf *logMsg) CreateAt() ATime {
  45. return sf.createAt
  46. }
  47. // Проверяет правильность своего состава
  48. func (sf *logMsg) check(level int) {
  49. switch level {
  50. case DEBUG:
  51. sf.level = "DEBU"
  52. case INFO:
  53. sf.level = "INFO"
  54. case WARN:
  55. sf.level = "WARN"
  56. case ERROR:
  57. sf.level = "ERRO"
  58. default:
  59. Hassert(false, "logMsg.check(): unknown level(%v)", level)
  60. }
  61. }