Skip to main content

log + rich = logrich

Project description

LogRich - Расширенный логгер с Rich форматированием

Python Rich License

Screenshot logger
Screenshot logger2

Screenshot logger

Screenshot logger too

LogRich - это мощный и гибкий логгер для Python, построенный на основе библиотеки Rich. Он предоставляет красивое цветное форматирование, табличный вывод и динамические методы логирования.

✨ Особенности

  • 🎨 Цветной вывод с поддержкой Rich разметки
  • 📊 Табличное форматирование с информацией о файле и строке
  • 🔧 Динамические методы - вызывайте log.любое_слово() для создания цветных логов
  • ⚙️ Гибкая конфигурация через переменные окружения
  • 📝 Поддержка сложных объектов - красивый вывод dict, list, tuple
  • 🎯 255+ предустановленных уровней логирования
  • 🔍 Автоматическое определение места вызова (файл, строка)

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

Установка

pip install logrich

Базовое использование

from logrich import log

# Стандартные методы
log.info("Информационное сообщение")
log.error("Ошибка в приложении")
log.success("Операция выполнена успешно")

# Динамические методы
log.api("API запрос выполнен")
log.database("Подключение к БД")
log.custom_level("Любой текст")

# Вывод сложных объектов
data = {"user": "admin", "status": "active"}
log.debug(data, title="Данные пользователя")

📖 Подробное использование

Стандартные уровни логирования

from logrich import log

log.trace("Детальная отладочная информация")
log.debug("Отладочная информация")
log.info("Общая информация")
log.success("Успешное выполнение")
log.warning("Предупреждение")
log.error("Ошибка")
log.fatal("Критическая ошибка")

Динамические методы

LogRich автоматически создает методы для любых слов:

# Программные термины
log.api("REST API вызов")
log.sql("Выполнение запроса")
log.cache("Кэш обновлен")
log.auth("Аутентификация пройдена")

# Пользовательские уровни
log.start("Начало процесса")
log.end("Завершение процесса")
log.test("Тестовое сообщение")

Вывод сложных объектов

# Словари и списки
user_data = {
    "id": 123,
    "name": "Иван Иванов",
    "roles": ["admin", "user"]
}
log.info(user_data, title="Информация о пользователе")

# Кортежи
coordinates = (55.7558, 37.6176)
log.debug(coordinates, title="Координаты Москвы")

Дополнительные параметры

# Кастомный заголовок
log.info("Сообщение", title="Мой заголовок")

# Указание файла и строки
log.error("Ошибка", file_name="custom.py", line=42)

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

Смотрите полные примеры в тестах

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

Основные настройки

# Включение/выключение LogRich
LGR_LOGRICH_ON=1  # 1 - включен, 0 - выключен

# Настройки ширины
LGR_LEVEL_MAX_WITH=15        # Максимальная ширина плашки уровня
LGR_LEVEL_MIN_WITH=9         # Минимальная ширина плашки уровня
LGR_CONSOLE_WITH=120         # Общая ширина консоли (по умолчанию COLUMNS)
LGR_LEN_FILE_NAME_SECTION=20 # Ширина секции с именем файла
LGR_DOCKER_ON=1,             # Условие которое говорил программе что она запущена в докере

# Пропорции колонок
LGR_RATIO_FILE_NAME=55       # Доля ширины для имени файла (%)
LGR_RATIO_MESSAGE=100        # Доля ширины для сообщения (%)
LGR_REDUCE_DEVIDER_LEN=25    # Уменьшение длины разделителя

Настройка стилей уровней

# Стандартные уровни
LOG_LEVEL_INFO_TPL="[reverse blue] INFO   [/]"
LOG_LEVEL_ERROR_TPL="[reverse red] ERROR  [/]"
LOG_LEVEL_SUCCESS_TPL="[reverse green] SUCCESS[/]"
LOG_LEVEL_WARNING_TPL="[reverse yellow] WARN   [/]"
LOG_LEVEL_DEBUG_TPL="[reverse #AB343A] DEBUG  [/]"

# Пользовательские уровни
LOG_LEVEL_START_TPL="[reverse i dark_orange] START  [/]"
LOG_LEVEL_API_TPL="[reverse i color(1)] API    [/]"
LOG_LEVEL_SQL_TPL="[reverse i color(33)] SQL    [/]"

# Отключение конкретного уровня
LOG_LEVEL_DEBUG_TPL=''  # Пустая строка отключает вывод

Совместимость с Loguru

LOGURU_DIAGNOSE=NO      # Отключение диагностики Loguru
LOGURU_DATETIME_SHOW=1  # Показ времени в Loguru

🎨 Доступные цвета и стили

LogRich поддерживает все возможности Rich разметки:

# Цвета
"[red]текст[/]"           # Красный текст
"[blue]текст[/]"          # Синий текст
"[#FF5733]текст[/]"       # HEX цвет
"[color(196)]текст[/]"    # 256-цветная палитра

# Стили
"[bold]жирный[/]"         # Жирный
"[italic]курсив[/]"       # Курсив
"[reverse]инверсия[/]"    # Инверсия цветов
"[underline]подчерк[/]"   # Подчеркивание

# Комбинации
"[reverse bold red] КРИТИЧНО [/]"  # Комбинированный стиль

📋 Предустановленные уровни

LogRich включает 255+ предустановленных уровней:

Программные термины

  • api, app, sql, css, html, json, xml
  • git, npm, pip, docker, nginx
  • auth, cache, debug, error, trace

Системные термины

  • cpu, ram, disk, net, tcp, udp
  • file, dir, path, url, port

Пользовательские

  • start, end, test, dev, prod
  • success, fail, warn, info

Полный список методов с автодополнением и подсказками типов доступен в interface

🔧 Расширенные возможности

Создание собственных уровней

# Любое слово автоматически становится методом
log.my_custom_level("Пользовательское сообщение")
log.business_logic("Бизнес-логика выполнена")
log.performance("Время выполнения: 0.5с")

Условное логирование

# Отключение через конфигурацию
if config.DEBUG_MODE:
    log.debug("Отладочная информация")

# Отключение конкретного уровня через переменную окружения
# LOG_LEVEL_VERBOSE_TPL='' - отключит log.verbose()

Интеграция с существующим кодом

# Замена стандартного логгера
import logging
from logrich import log

# Вместо logging.info()
log.info("Сообщение")

# Сохранение совместимости
logging.info = log.info
logging.error = log.error

🧪 Тестирование

# Запуск всех тестов
pytest

# Запуск с мониторингом изменений
ptw

# Запуск конкретного теста
pytest tests/test_1.py::test_one -v

# Запуск с покрытием
pytest --cov=logrich

📦 Зависимости

  • Python >= 3.8
  • Rich >= 13.0.0
  • Loguru (опционально, для совместимости)

🤝 Вклад в проект

  1. Форкните репозиторий
  2. Создайте ветку для новой функции (git checkout -b feature/amazing-feature)
  3. Зафиксируйте изменения (git commit -m 'Add amazing feature')
  4. Отправьте в ветку (git push origin feature/amazing-feature)
  5. Откройте Pull Request

📄 Лицензия

Этот проект лицензирован под MIT License - см. файл LICENSE для деталей.

🔗 Полезные ссылки

📸 Больше скриншотов


LogRich - делает логирование красивым и удобным! 🎨✨

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

logrich-1.0.11.tar.gz (21.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

logrich-1.0.11-py3-none-any.whl (16.2 kB view details)

Uploaded Python 3

File details

Details for the file logrich-1.0.11.tar.gz.

File metadata

  • Download URL: logrich-1.0.11.tar.gz
  • Upload date:
  • Size: 21.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.18 {"installer":{"name":"uv","version":"0.9.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Linux Mint","version":"22.3","id":"zena","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for logrich-1.0.11.tar.gz
Algorithm Hash digest
SHA256 071551bc0ffa56639dadc7493df43d9dadcdbfedbb801d27ee76cd8ea19cac1e
MD5 0abb8dade3a9ac2257ad9b6e520ad733
BLAKE2b-256 78df224cae675ec762f2ce97ba191604bb787c3c016c06b349c7d6a4948c7617

See more details on using hashes here.

File details

Details for the file logrich-1.0.11-py3-none-any.whl.

File metadata

  • Download URL: logrich-1.0.11-py3-none-any.whl
  • Upload date:
  • Size: 16.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.18 {"installer":{"name":"uv","version":"0.9.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Linux Mint","version":"22.3","id":"zena","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for logrich-1.0.11-py3-none-any.whl
Algorithm Hash digest
SHA256 c45c4d4b1a1fc88be8fc80cc1516852b198bdf9521d42599852ff359462a38f7
MD5 3b0adf688df07c2f6fd2111bd0674f44
BLAKE2b-256 40bf1e08e1f6064c7f5d9b058083df0a27b1640d7df17971a4ff4c13a29cbd83

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page