// 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}) } }