grpclog

package
v1.67.2 Latest Latest
Warning

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

Go to latest
Published: Apr 27, 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

Overview

Package grpclog provides logging middleware for gRPC server handlers. It supports request/response body logging with configurable granularity and automatic inclusion of application context from metadata.

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

CombinedLog creates a middleware that logs gRPC server requests and responses in a single entry. When logBody is true, request and response bodies are included in the logs. Includes application context (name and ID) from metadata.

func Log

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

Log creates a middleware that logs gRPC server requests and responses separately. When logBody is true, request and response bodies are included in the logs. Logs at Debug level for requests and responses.

func LogWithOptions

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

LogWithOptions creates a middleware that logs gRPC server requests and responses with custom options. Provides fine-grained control over what is logged (request body, response body, combined logs).

Types

type Option

type Option func(cfg *logConfig)

Option configures logging behavior for server middleware.

func WithCombinedLog added in v1.64.4

func WithCombinedLog(enable bool) Option

WithCombinedLog enables a single combined log entry for request and response. When disabled, requests and responses are logged separately.

func WithLogBody

func WithLogBody(logBody bool) Option

WithLogBody enables logging of both request and response bodies.

func WithLogRequestBody

func WithLogRequestBody(logRequestBody bool) Option

WithLogRequestBody enables or disables logging of request bodies.

func WithLogResponseBody

func WithLogResponseBody(logResponseBody bool) Option

WithLogResponseBody enables or disables logging of response bodies.

Jump to

Keyboard shortcuts

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