log_msg.go 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. // package log_msg -- сообщение логгера.
  2. package log_msg
  3. import (
  4. "fmt"
  5. "gitp78su.ipnodns.ru/svi/kern/v4/d0"
  6. )
  7. type IString interface {
  8. String() string
  9. }
  10. // ILogMsg -- сообщение лога.
  11. type ILogMsg interface {
  12. IString
  13. // CreateAt -- когда создано
  14. CreateAt() *d0.LTime
  15. // Level -- уровень сообщения
  16. Level() *d0.LTxt
  17. // Msg -- текст сообщения
  18. Msg() *d0.LTxt
  19. }
  20. // logMsg -- сообщение логгера.
  21. type logMsg struct {
  22. owner *d0.LOwner
  23. createdAt *d0.LTime
  24. level *d0.LTxt
  25. msg *d0.LTxt
  26. }
  27. // NewLogMsg -- возвращает новое сообщение логгера.
  28. func NewLogMsg(level, msg *d0.LTxt) ILogMsg {
  29. sf := &logMsg{
  30. owner: msg.Owner(),
  31. createdAt: d0.LetTimeAuto(),
  32. msg: msg,
  33. level: level,
  34. }
  35. return sf
  36. }
  37. // String -- возвращает форматированное сообщение лога.
  38. func (sf *logMsg) String() string {
  39. strOut := fmt.Sprintf("%v %v %v", sf.level, sf.createdAt, sf.msg)
  40. return strOut
  41. }
  42. // Msg -- возвращает хранимое сообщение.
  43. func (sf *logMsg) Msg() *d0.LTxt {
  44. return sf.msg
  45. }
  46. // Level -- возвращает уровень сообщения.
  47. func (sf *logMsg) Level() *d0.LTxt {
  48. lev := d0.LetTxt(sf.owner, sf.level.Get())
  49. return lev
  50. }
  51. // CreateAt -- когда сообщение создано.
  52. func (sf *logMsg) CreateAt() *d0.LTime {
  53. return sf.createdAt
  54. }