// package log_msg -- сообщение логгера. package log_msg import ( "fmt" mL0 "gitp78su.ipnodns.ru/svi/kern/v4/lev0" "gitp78su.ipnodns.ru/svi/kern/v4/lev0/kspec" "gitp78su.ipnodns.ru/svi/kern/v4/lev0/quark" "gitp78su.ipnodns.ru/svi/kern/v4/lev0/quark/quark_val" "gitp78su.ipnodns.ru/svi/kern/v4/lev0/voc" ) const ( DEBUG = -3 INFO = -2 WARN = -1 ERROR = 0 ) // logMsg -- сообщение логгера. type logMsg struct { level *quark.QStr[quark.Mut] createdAt kspec.ITime msg *quark.QStr[quark.Fix] } // NewLogMsg -- возвращает новое сообщение логгера. func NewLogMsg(level int, msg string) kspec.ILogMsg { sf := &logMsg{ createdAt: voc.NewETimeAuto(), msg: quark.NewQStr(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() *quark.QStr[quark.Fix] { return sf.msg } // Level -- возвращает уровень сообщения. func (sf *logMsg) Level() *quark.QStr[quark.Mut] { return sf.level } // CreateAt -- когда сообщение создано. func (sf *logMsg) CreateAt() kspec.ITime { return sf.createdAt } // Проверяет правильность своего состава. func (sf *logMsg) check(level int) { switch level { case DEBUG: quark_val.Set(sf.level.Val(), "DEBU") case INFO: quark_val.Set(sf.level.Val(), "INFO") case WARN: quark_val.Set(sf.level.Val(), "WARN") case ERROR: quark_val.Set(sf.level.Val(), "ERRO") default: mL0.Hassert(false, "logMsg.check(): unknown level(%v)", level) } }