log_msg.go 1.8 KB

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