logutil

package
v1.67.0 Latest Latest
Warning

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

Go to latest
Published: Apr 17, 2026 License: MIT Imports: 2 Imported by: 0

README

Package logutil

Пакет logutil предоставляет функции-утилиты для гибкого управления уровнем логирования ошибок.

Functions

LogLevelForError(err error) log.Level

Определить уровень логирования для ошибки.

LogLevelFuncForError(err error, logger log.Logger) func(ctx context.Context, message any, fields ...log.Field)

Получить функцию логирования соответствующего уровня для ошибки.

Usage

Default usage flow
package main

import (
	"context"
	"log"

	log2 "github.com/txix-open/isp-kit/log"
	"github.com/txix-open/isp-kit/log/logutil"
)

type rateLimitError struct {
	Message string
}

func (e rateLimitError) Error() string {
	return e.Message
}

func (e rateLimitError) LogLevel() log2.Level {
	return log2.WarnLevel
}

// Обработка ошибки
func processRequest() error {
	/* put here logic with request */
	return rateLimitError{Message: "some error"}
}

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

	err = processRequest()
	logFunc := logutil.LogLevelFuncForError(err, logger)
	logFunc(context.Background(),
		"Request processing failed",
		log2.String("error", err.Error()),
	)
}

Documentation

Overview

Package logutil provides utility functions for logging.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func LogLevelForError

func LogLevelForError(err error) log.Level

LogLevelForError determines the log level for an error. It returns ErrorLevel by default, or a custom level if the error implements LogLevelSpecifier.

func LogLevelFuncForError

func LogLevelFuncForError(err error, logger log.Logger) func(ctx context.Context, message any, fields ...log.Field)

LogLevelFuncForError returns the appropriate logging function for an error. It uses LogLevelForError to determine the log level and returns the corresponding Logger method.

Types

type LogLevelSpecifier

type LogLevelSpecifier interface {
	LogLevel() log.Level
}

LogLevelSpecifier is an interface for errors that specify their log level.

Jump to

Keyboard shortcuts

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