| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- // package log_msg -- сообщение логгера.
- package log_msg
- import (
- "fmt"
- "gitp78su.ipnodns.ru/svi/kern/v4/lev0"
- )
- type IString interface {
- String() string
- }
- // ILogMsg -- сообщение лога.
- type ILogMsg interface {
- IString
- // CreateAt -- когда создано
- CreateAt() *lev0.LTime
- // Level -- уровень сообщения
- Level() *lev0.LTxt
- // Msg -- текст сообщения
- Msg() *lev0.LTxt
- }
- const (
- DEBUG = lev0.Num(-4)
- INFO = lev0.Num(-3)
- WARN = lev0.Num(-2)
- ERROR = lev0.Num(-1)
- NOTSET = lev0.Num(0)
- )
- // logMsg -- сообщение логгера.
- type logMsg struct {
- level *lev0.MTxt
- createdAt *lev0.LTime
- msg lev0.Txt
- }
- // NewLogMsg -- возвращает новое сообщение логгера.
- func NewLogMsg(level lev0.Num, msg lev0.Txt) ILogMsg {
- sf := &logMsg{
- createdAt: lev0.LetTimeAuto(),
- 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() *lev0.LTxt {
- return lev0.LetTxt(sf.msg)
- }
- // Level -- возвращает уровень сообщения.
- func (sf *logMsg) Level() *lev0.LTxt {
- lev := lev0.LetTxt(sf.level.Get())
- return lev
- }
- // CreateAt -- когда сообщение создано.
- func (sf *logMsg) CreateAt() *lev0.LTime {
- return sf.createdAt
- }
- // Проверяет правильность своего состава.
- func (sf *logMsg) check(level lev0.Num) {
- 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:
- lev0.If(true).Hassert("logMsg.check(): NOT SET level(%v)", []any{level})
- }
- }
|