sgloggerconsole

package module
v0.1.2 Latest Latest
Warning

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

Go to latest
Published: Nov 30, 2025 License: MIT Imports: 9 Imported by: 0

README

Seri Go Logger Console

Провайдер для консольного вывода логов для библиотеки seri-go-logger.

Установка

go get github.com/SergeiKhanlarov/seri-go-logger-console

Импорт

import (
    sglogger "github.com/SergeiKhanlarov/seri-go-logger"
    console "github.com/SergeiKhanlarov/seri-go-logger-console"
)

Быстрый старт

package main

import (
    "context"
    
    sglogger "github.com/SergeiKhanlarov/seri-go-logger"
    "github.com/SergeiKhanlarov/seri-go-logger-console"
)

func main() {
    ctx := context.Background()
    
    // Создание конфигурации провайдера
    config := sgloggerconsole.ProviderConfig{
        LoggerConfig: sglogger.LoggerConfig{},
        level:        sglogger.LevelInfo,
    }
    
    // Создание форматировщика
    formatter := sgloggerconsole.NewConsoleFormatter()
    
    // Создание провайдера
    provider := sgloggerconsole.NewConsoleProvider(config, formatter)
    
    // Создание логгера
    logger := sglogger.NewLogger(
		sglogger.LoggerConfig{}, 
		sglogger.NewFieldsHandler(),
		provider)
    
    // Использование логгера
    logger.Info(ctx, "Приложение запущено", sglogger.Fields{
        "version": "1.0.0",
        "port":    8080,
    })
}

Конфигурация

ProviderConfig
type ProviderConfig struct {
    sglogger.LoggerConfig        // Базовая конфигурация
    level       sglogger.Level   // Уровень логирования
}
Уровни логирования

LevelDebug - отладочные сообщения LevelInfo - информационные сообщения LevelWarn - предупреждения LevelError - ошибки LevelFatal - критические ошибки

Форматирование

Пакет предоставляет ConsoleFormatter с цветовым выводом:

2024-01-15 10:30:45 [INFO] main.go(25) - Application started version=1.0.0 port=8080
2024-01-15 10:30:46 [ERROR] handler.go(78) - Database connection failed db_host=localhost
Цветовая схема:

🔵 Debug - Cyan
🟢 Info - Green
🟡 Warn - Yellow
🔴 Error/Fatal - Red

Особенности

✅ Цветовой вывод - автоматическое окрашивание по уровням логирования
✅ Структурированные логи - поддержка полей в формате key-value
✅ Информация о месте вызова - автоматическое определение файла и строки
✅ Фильтрация по уровням - эффективная фильтрация ненужных сообщений
✅ Производительность - минимальные накладные расходы
✅ Совместимость - полная интеграция с seri-go-logger

📄 Лицензия

MIT License - смотрите файл LICENSE для деталей.

Copyright (c) 2025 Ханларов Сергей

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func NewConsoleProvider

func NewConsoleProvider(config ProviderConfig, formatter ConsoleFormatter) sglogger.LoggerProvider

NewConsoleProvider создает и возвращает новый экземпляр провайдера консольного логирования.

Параметры:

  • config - конфигурация провайдера, включающая уровень логирования и базовые настройки
  • formatter - форматировщик для преобразования записей лога в читаемый вид

Возвращает:

  • sglogger.LoggerProvider - интерфейс провайдера логирования

Пример использования:

config := ProviderConfig{
    LoggerConfig: sglogger.LoggerConfig{...},
    level:        sglogger.LevelInfo,
}
formatter := NewConsoleFormatter()
provider := NewConsoleProvider(config, formatter)
logger := sglogger.NewLogger(provider)

Types

type ConsoleFormatter

type ConsoleFormatter interface {
	Format(entry *logrus.Entry) ([]byte, error)
}

ConsoleFormatter определяет интерфейс для форматирования записей лога. Реализует контракт logrus.Formatter для интеграции с logrus.

func NewConsoleFormatter

func NewConsoleFormatter() ConsoleFormatter

NewConsoleFormatter создает и возвращает новый экземпляр consoleFormatter. Возвращает:

  • ConsoleFormatter - форматировщик для использования в logrus

Пример использования:

logger := logrus.New()
logger.SetFormatter(NewConsoleFormatter())

type ProviderConfig

type ProviderConfig struct {
	sglogger.LoggerConfig                // Встроенная базовая конфигурация логгера
	Level                 sglogger.Level // Специфичный для провайдера уровень логирования
}

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

Структура объединяет:

  • sglogger.LoggerConfig - базовая конфигурация логгера (уровни логирования, формат, выходные потоки)
  • level - специфичный для провайдера уровень логирования, который может отличаться от общего уровня

Пример использования:

config := &ProviderConfig{
    LoggerConfig: sglogger.LoggerConfig{...},
    level:        sglogger.LevelDebug,
}

func (*ProviderConfig) GetLevel

func (p *ProviderConfig) GetLevel() string

GetLevel возвращает строковое представление уровня логирования провайдера. Используется для совместимости с системами, которые ожидают строковые значения уровней логирования.

Возвращаемые значения:

  • "debug" - для уровня отладки (LevelDebug)
  • "info" - для информационного уровня (LevelInfo)
  • "warning" - для предупреждений (LevelWarn)
  • "error" - для ошибок (LevelError)
  • "critical" - для критических ошибок (LevelFatal)
  • "info" - значение по умолчанию, если уровень не распознан

Пример:

level := config.GetLevel() // возвращает "debug", "info", etc.

Jump to

Keyboard shortcuts

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