Categorygithub.com/LeKovr/go-kit/logger
modulepackage
0.2.3
Repository: https://github.com/lekovr/go-kit.git
Documentation: pkg.go.dev

# README

go-kit/logger

Go Reference GitHub Release GoCard GitHub license

Требования

  • поля со значениями, а не строки
  • в числе полей есть имя файла и номер строки
  • в проде поля пишутся в json
  • при отладке в консоли - читаемый вывод
  • для тестов вывод пишется в буфер и его можно анализировать
  • ?? возможность влючить отладку заданного пакета

Почему github.com/go-logr/logr ?

Автор приложения, использующего ваш пакет, по разным причинам может выбрать одну из многих систем журналирования. Я предпочитаю вариант, при котором этот выбор не ограничивается моим пакетом. Т.е. мои пакеты для журналирования используют внешний интерфейс, а выбор пакета журналирования я оставляю за автором приложения.

Зачем log.V(X).Info?

По сравнению с вариантом log.Debug() и log.Warn(). использование переменной позволяет изменять уровень журналирования пакета при старте программы или в процессе ее работы.

В частности, если число для отладки (1) положить в переменную DL и для журналирования использовать log.V(DL).Info, то при отладке всего приложения можно выключить журналирование неактуального пакета инструкцией вида pkg.DL = 9.

TODO

примеры (narra? webtail?)

# Functions

New creates new logger according to Config.
NewContext calls logr.NewContext so ypu don't need to import logr for it.

# Structs

Config holds package configuration.