ilog_buf.go 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. package kspec
  2. import (
  3. "gitp78su.ipnodns.ru/svi/kern/v4/lev0/defs"
  4. "gitp78su.ipnodns.ru/svi/kern/v4/lev0/quark"
  5. )
  6. // ILogMsg -- сообщение лога.
  7. type ILogMsg interface {
  8. // CreateAt -- когда создано
  9. CreateAt() ITime
  10. // Level -- уровень сообщения
  11. Level() *quark.QStr[quark.Mut]
  12. // Msg -- текст сообщения
  13. Msg() *quark.QStr[quark.Fix]
  14. // String -- форматированная строка
  15. String() string
  16. }
  17. // ILogBus -- публикует в топики логи.
  18. type ILogBus interface {
  19. // DebugAdd -- добавляет топик для отладочного сообщения
  20. DebugAdd(topic defs.Topic, bus IBusClient) IResult[bool]
  21. }
  22. // ILogBuf -- буферизованный лог для диагностики.
  23. //
  24. // Буфер для Error -- отдельный.
  25. type ILogBuf interface {
  26. // Debug -- сообщение отладки
  27. Debug(fMsg string, args ...any)
  28. // LogBus -- возвращает объект публикации в шину
  29. // LogBus()ILogBus
  30. // Info -- информационные сообщения
  31. Info(fMsg string, args ...any)
  32. // Warn -- предупреждающие сообщения
  33. Warn(fMsg string, args ...any)
  34. // Err -- сообщения об ошибках
  35. Err(fMsg string, args ...any)
  36. // Get -- возвращает сообщение по номеру (0..99)
  37. Get(num int) ILogMsg
  38. // GetErr -- возвращает сообщение ошибки по номеру (0..99)
  39. GetErr(num int) ILogMsg
  40. // Size -- возвращает размер лога
  41. Size() int
  42. // IsTerm -- возвращает признак логирования в терминал
  43. IsTerm() ISafeBool
  44. }