grpclog

package module
v0.2.1 Latest Latest
Warning

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

Go to latest
Published: Nov 22, 2022 License: MIT Imports: 12 Imported by: 0

README

gRPC сервис для получения логов

Вспомогательный сервис для получения логов от gRPC сервиса в реальном времени.

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Debug

func Debug(message string, fields ...any)

Debug отправляет отладочное сообщение лога.

func Error

func Error(err error, message string, fields ...any)

Error отправляет сообщение лога об ошибке, если ошибка задана. В противном случае отправляется информационное сообщение.

func Info

func Info(message string, fields ...any)

Info отправляет информационное сообщение лога.

func Print added in v0.2.1

func Print(logmsg *Item)

Print выводит в форматированном виде запись лога в os.Stdout.

func Receiver added in v0.2.0

func Receiver(ctx context.Context, cc grpc.ClientConnInterface) (func() (*Item, error), error)

Receiver возвращает функцию для чтения логов с удалённого сервиса по gRPC. Каждый вызов этой функции возвращает либо запись лога, либо ошибку. В случае планового закрытия канала получения лога сервером возвращается ошибка io.EOF.

func Register

func Register(srv *grpc.Server)

Register регистрирует сервис отправки логов по умолчанию в качестве сервиса gRPC.

func Send

func Send(level int8, message string, fields ...any)

Send отвечает за формирование и отправку записи лога.

func Warn

func Warn(message string, fields ...any)

Warn отправляет предупреждающее сообщение лога.

Types

type F

type F = map[string]any

F используется как синомим для списка именованных полей.

type Item added in v0.2.1

type Item = api.LogItem // запись лога

Экспортируемые синонимы данных.

type Level added in v0.2.1

type Level = api.LogItem_Level // уровень лога

Экспортируемые синонимы данных.

const (
	// информация
	INFO Level = api.LogItem_LEVEL_INFO
	// предупреждение
	WARNING Level = api.LogItem_LEVEL_WARNING
	// ошибка
	ERROR Level = api.LogItem_LEVEL_ERROR
	// фатальная ошибка
	FATAL Level = api.LogItem_LEVEL_FATAL
	// отладочный уровень
	DEBUG Level = api.LogItem_LEVEL_DEBUG
	// уровень трассировки
	TRACE Level = api.LogItem_LEVEL_TRACE
)

type LogService

type LogService struct {
	api.UnimplementedLogServiceServer // поддержка интерфейсов сервиса логов
	// contains filtered or unexported fields
}

LogService реализует сервис для публикации логов.

func (*LogService) Debug

func (s *LogService) Debug(message string, fields ...any)

Debug отправляет отладочное сообщение лога.

func (*LogService) Error

func (s *LogService) Error(err error, message string, fields ...any)

Error отправляет сообщение лога об ошибке, если ошибка задана. В противном случае отправляется информационное сообщение.

func (*LogService) Info

func (s *LogService) Info(message string, fields ...any)

Info отправляет информационное сообщение лога.

func (*LogService) Logs

func (s *LogService) Logs(_ *emptypb.Empty, stream api.LogService_LogsServer) error

Logs поддерживает отправку потока логов подписчику.

func (*LogService) Send

func (s *LogService) Send(level api.LogItem_Level, message string, fields ...any)

Send формирует запись лога и отправляет всем подписчикам.

FIXME: я не стал особо заморачиваться по поводу разбора различных вариатов перечисления полей, поэтому сделал как удобнее мне самому для использования!

Поля с ошибками преобразуются в текст с именем error. Именованные списки (map) автоматически преобразуются к списку полей с такими же именами. Если имя поля не может быть преобразовано к строке, то оно игнорируется вместе с его значением. Последнее поле, не имеющего в пару значения, тоже игнорируется.

func (*LogService) Warn

func (s *LogService) Warn(message string, fields ...any)

Warn отправляет предупреждающее сообщение лога.

Directories

Path Synopsis
api
v1

Jump to

Keyboard shortcuts

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