grpclog

package
v1.65.2 Latest Latest
Warning

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

Go to latest
Published: Mar 20, 2026 License: MIT Imports: 7 Imported by: 0

README

Package grpclog

Пакет grpclog предоставляет middleware для логирования gRPC-запросов и ответов с гибкой настройкой детализации. Поддерживает логирование тел сообщений и времени выполнения.

Functions

Log(logger log.Logger, logBody bool) grpc.Middleware

Создает middleware с базовыми настройками. Логирует тела запроса и ответа, если logBody = true.

CombinedLog(logger log.Logger, logBody bool) grpc.Middleware

Создает middleware с базовыми настройками. Логирует тела запроса и ответа, если logBody = true, собирает запрос и ответ в 1 лог.

LogWithOptions(logger log.Logger, opts ...Option) grpc.Middleware

Создает middleware с кастомными настройками через опции:

  • WithLogBody(logBody bool) Option – Включает/отключает логирование тела запроса и ответа.
  • WithLogResponseBody(logResponseBody bool) Option – Включает/отключает логирование тела ответа.
  • WithLogRequestBody(logRequestBody bool) Option – Включает/отключает логирование тела запроса.
  • WithCombinedLog(enable bool) Option – Включает/отключает сборку запроса/ответа в 1 лог.

Usage

Default log middleware
package main

import (
	"log"

	"github.com/txix-open/isp-kit/grpc/endpoint"
	"github.com/txix-open/isp-kit/grpc/endpoint/grpclog"
	log2 "github.com/txix-open/isp-kit/log"
)

func main() {
	logger, err := log2.New()
	if err != nil {
		log.Fatal(err)
	}

	/* create wrapper with default logging middleware */
	wrapper := endpoint.DefaultWrapper(logger, grpclog.Log(logger, true))
}

Customize log middleware
package main

import (
	"log"

	"github.com/txix-open/isp-kit/grpc/endpoint"
	"github.com/txix-open/isp-kit/grpc/endpoint/grpclog"
	log2 "github.com/txix-open/isp-kit/log"
)

func main() {
	logger, err := log2.New()
	if err != nil {
		log.Fatal(err)
	}

	/* create wrapper with custom logging middleware */
	wrapper := endpoint.DefaultWrapper(logger, grpclog.LogWithOptions(
		logger,
		grpclog.WithLogRequestBody(true),   // enable logging request body
		grpclog.WithLogResponseBody(false), // disable logging response body
		grpclog.WithLogBody(true),          // enable logging request's & response's bodies
	))
}

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func CombinedLog added in v1.64.4

func CombinedLog(logger log.Logger, logBody bool) grpc.Middleware

func Log

func Log(logger log.Logger, logBody bool) grpc.Middleware

func LogWithOptions

func LogWithOptions(logger log.Logger, opts ...Option) grpc.Middleware

Types

type Option

type Option func(cfg *logConfig)

func WithCombinedLog added in v1.64.4

func WithCombinedLog(enable bool) Option

Enables single combined request+response log entry.

func WithLogBody

func WithLogBody(logBody bool) Option

Shortcut for logResponseBody and logRequestBody

func WithLogRequestBody

func WithLogRequestBody(logRequestBody bool) Option

func WithLogResponseBody

func WithLogResponseBody(logResponseBody bool) Option

Jump to

Keyboard shortcuts

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