log_msg.go 1.9 KB

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