slogger

package module
v0.13.0 Latest Latest
Warning

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

Go to latest
Published: Apr 23, 2024 License: Apache-2.0 Imports: 8 Imported by: 2

README

go-kit/slogger

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?)

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ErrAttr added in v0.12.24

func ErrAttr(err error) slog.Attr

ErrAttr returns slog.Attr for err value.

func Setup

func Setup(cfg Config, out io.Writer) error

Setup creates slog default logger.

Types

type Config

type Config struct {
	Debug       bool   `long:"debug" description:"Show debug info"`
	Destination string `long:"dest" description:"Log destination (default: STDERR)"`
}

Config holds package configuration.

Jump to

Keyboard shortcuts

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