| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- // package log_msg -- сообщение логгера.
- package log_msg
- import (
- "fmt"
- "gitp78su.ipnodns.ru/svi/kern/v4/lev0/core_spec"
- "gitp78su.ipnodns.ru/svi/kern/v4/lev0/defs"
- "gitp78su.ipnodns.ru/svi/kern/v4/lev0/helpers"
- "gitp78su.ipnodns.ru/svi/kern/v4/lev0/voc/etime"
- )
- // ILogMsg -- сообщение лога.
- type ILogMsg interface {
- // CreateAt -- когда создано
- CreateAt() core_spec.ITime
- // Level -- уровень сообщения
- Level() defs.ITxtMut
- // Msg -- текст сообщения
- Msg() defs.ITxtFix
- // String -- форматированная строка
- String() string
- }
- const (
- DEBUG = -3
- INFO = -2
- WARN = -1
- ERROR = 0
- )
- // logMsg -- сообщение логгера.
- type logMsg struct {
- level defs.ITxtMut
- createdAt core_spec.ITime
- msg defs.ITimeFix
- }
- // NewLogMsg -- возвращает новое сообщение логгера.
- func NewLogMsg(level int, msg defs.ITxtFix) ILogMsg {
- sf := &logMsg{
- createdAt: etime.NewETimeAuto(),
- msg: msg,
- }
- sf.check(level)
- return sf
- }
- // String -- возвращает форматированное сообщение лога.
- func (sf *logMsg) String() string {
- strOut := fmt.Sprintf("%v %v %v", sf.level, sf.createdAt, sf.msg)
- return strOut
- }
- // Msg -- возвращает хранимое сообщение.
- func (sf *logMsg) Msg() defs.ITxtFix {
- return sf.msg
- }
- // Level -- возвращает уровень сообщения.
- func (sf *logMsg) Level() defs.ITxtMut {
- return sf.level
- }
- // CreateAt -- когда сообщение создано.
- func (sf *logMsg) CreateAt() core_spec.ITime {
- return sf.createdAt
- }
- // Проверяет правильность своего состава.
- func (sf *logMsg) check(level int) {
- switch level {
- case DEBUG:
- sf.level.Set("DEBU")
- case INFO:
- sf.level.Set("INFO")
- case WARN:
- sf.level.Set("WARN")
- case ERROR:
- sf.level.Set("ERRO")
- default:
- helpers.Hassert(false, "logMsg.check(): unknown level(%v)", []any{level})
- }
- }
|