logger

package module
v0.2.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 19, 2021 License: MIT Imports: 17 Imported by: 0

README

Пакет логгера

Version: 0.2.0

Fetures

  • Логгер, кроме фунции (с файлом и строкой) из которой вызван, сохраняет идентификатор потока
  • Логгер параллельно с выводом записывает сообщения в файл и в базу данных
  • Гибкая настройка выводимых и сохраняемых типов сообщений
  • Работа с файлом конфирурации "из коробки"
  • Отправка сообщений в лог-сервер

Использование

import (
    "gitlab.com/leolab/go/logger"
    "gitlab.com/leolab/go/AppConf"
)

var log Logger

func main(){
    cfg,err:=appconf.NewAppConf()
    if err!=nil{
        panic(err.Error())
    }
    log,err = logger NewLogger(cfg)
    if err!=nil{
        panic(err.Error())
    }

}

Теги замены

Теги применяются в шаблонах вывода лога в консоль и записи в файл

  • %file%
  • %line%
  • %func%
  • %type% - Уровень лога
  • %msg%
  • %goID% - идентификатор рутины
  • %procID% - идентификатор процесса (системный)

Параметры

  • --logger.file
  • --logger.dsn
  • --logger.levels = "" - общие параметры, либо:
    • --logger.levels.verbose = "debug,notify,warning,error,request,event"
    • --logger.levels.file = "info,warning,error,request,event"
    • --logger.level.store = "debug,info,notify,warning,error,request,event"
  • --logger.dbg = "false"
  • --logger.silent = "true"
  • --logger.tpl.file = "%date% %time%.%time.ns% %procID%:%goID% [%type%] %msg% from %func% (%file%:%line%)"
  • --logger.tpl.cons = "%date% %time%.%time.ns% %procID%:%goID% [%type%] %msg% from %func% (%file%:%line%)"

Уровни логгера

  • debug
  • info
  • notify
  • warning
  • error
  • request
  • event

Documentation

Index

Constants

View Source
const (
	ErrConfigError   errs.ErrCode = "ErrConfigError"
	ErrFileError     errs.ErrCode = "ErrFileError"
	ErrDSError       errs.ErrCode = "ErrDSError"
	ErrDSUnsupported errs.ErrCode = "ErrDSUnsupported"
)

Variables

This section is empty.

Functions

This section is empty.

Types

type LogLevel added in v0.2.0

type LogLevel int
const (
	LogLevelDebug   LogLevel = iota
	LogLevelInfo             // LogLevel = 8
	LogLevelNotify           // LogLevel = 4
	LogLevelWarning          // LogLevel = 2
	LogLevelError            // LogLevel = 1
	//Special levels
	LogLevelRequest // = 20
	LogLevelEvent   // = 40
)

type LogLevels added in v0.2.0

type LogLevels struct {
	// contains filtered or unexported fields
}

func (*LogLevels) Add added in v0.2.0

func (l *LogLevels) Add(lvl LogLevel)

Добавить уровень логгирования

func (*LogLevels) Del added in v0.2.0

func (l *LogLevels) Del(lvl LogLevel)

Удалить уровень логгирования

func (*LogLevels) IsSet added in v0.2.0

func (l *LogLevels) IsSet(lvl LogLevel) bool

Установлен ли уровень

func (*LogLevels) Set added in v0.2.0

func (l *LogLevels) Set(lvl ...LogLevel)

Установить (переустановить) уровень логгирования

type Logger

type Logger struct {
	Dbg        bool       //=true - к выводу добавляется файл и строка вызова
	Silent     bool       //=true - не производится вывод в консоль
	FileName   string     // имя файла, возможно использование функций replacer
	DSN        string     // имя базы данных (DSN)
	VerbLevel  *LogLevels // Уровень сообщений для вывода в консоль
	FileLevel  *LogLevels // Уровень сообщений для записи в файл
	StoreLevel *LogLevels // Уровень сообщений для записи в БД
	//= Templates >
	FileTemplate string
	ConsTemplate string
	// contains filtered or unexported fields
}

func NewLogger

func NewLogger(cfg *appconf.AppConf) (log *Logger, err *errs.Err)

func (*Logger) Debug

func (l *Logger) Debug(msg string, data ...interface{})

func (*Logger) Error

func (l *Logger) Error(msg string, data ...interface{})

func (*Logger) Event

func (l *Logger) Event(msg string, data ...interface{})

func (*Logger) GetRecs added in v0.2.0

func (l *Logger) GetRecs(from, limit int, f ...*LoggerRec) (lr []*LoggerRec)

func (*Logger) Info

func (l *Logger) Info(msg string, data ...interface{})

func (*Logger) Notify

func (l *Logger) Notify(msg string, data ...interface{})

func (*Logger) Request

func (l *Logger) Request(msg string, data ...interface{})

func (*Logger) Warn added in v0.2.0

func (l *Logger) Warn(msg string, data ...interface{})

type LoggerRec added in v0.2.0

type LoggerRec struct {
	Time   time.Time `gorm:"index"`
	Lvl    string    `gorm:"index"`
	Msg    string
	File   string
	Line   int
	Func   string
	GoID   int
	ProcID int `gorm:"index"`
	//Src    __srcRec //JSON-string(__src)
	Data string //JSON-data
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL