Skip to main content

Turn Python logs into interactive HTML with filters and JSON highlighting

Project description

HTMLLogs — интерактивный просмотр логов в HTML

HTMLLogs — это лёгкая библиотека для Python, которая перехватывает логи из стандартного модуля logging и в реальном времени генерирует красивый интерактивный HTML-файл. Фильтрация по уровню (Error/Warning/Info/Debug), поиск по сообщению, сортировка по столбцам и подсветка JSON-объектов прямо в браузере.

Возможности

  • Интерактивная таблица с фильтрацией, поиском и сортировкой.
  • Подсветка JSON в сообщениях для удобного чтения.
  • Автообновление HTML — файл перезаписывается при каждом новом логе.
  • Ограниченное хранилище — до max_records записей (по умолчанию 1000), без переполнения памяти.
  • Простая настройка — достаточно одной строки.

Установка

pip install htmllogs

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

import logging
import htmllogs

#Настройка LN (!!!по умолчанию файл logs.html!!!)
htmllogs.setup()

logging.info("Приложение запущено")
logging.debug("Отладочное сообщение")
logging.warning("Внимание!")
try:
    1 / 0
except ZeroDivisionError:
    logging.error("Ошибка деления на ноль", exc_info=True)

Откройте файл logs.html в браузере — логи отобразятся в чистой интерактивной таблице.

Настройка

htmllogs.setup(html_file='logs.html', level=logging.DEBUG, max_records=1000)
  • html_file — путь к выходному HTML-файлу (по умолчанию 'logs.html').
  • level — минимальный уровень логирования (например, logging.INFO).
  • max_records — максимальное количество записей, хранящихся в памяти и отображаемых в HTML.

Расширенное использование

Можно использовать htmllogsHandler напрямую с любым логгером:

import logging
from htmllogs import htmllogsHandler

handler = htmllogsHandler('my_logs.html', max_records=500)
logger = logging.getLogger('myapp')
logger.addHandler(handler)
logger.setLevel(logging.DEBUG)

Использование конфигурационного файла

Сохраните настройки в JSON-файл, например htmllogs_config.json:

{
    "html_file": "my_logs.html",
    "level": "INFO",
    "max_records": 500
}

Затем примените их:

import logging
import htmllogs
from htmllogs import Config

cfg = Config('htmllogs_config.json')
htmllogs.setup(cfg.html_file, getattr(logging, cfg.level), cfg.max_records)

Как это работает?

htmllogs устанавливает собственный обработчик, который сохраняет записи логов в кольцевой буфер и формирует HTML-файл со встроенным JavaScript. Таблица поддерживает:

- Фильтрацию по уровню (нажмите на бейдж уровня)

- Поиск по тексту

- Сортировку по времени, уровню, имени логгера, сообщению

- Обнаружение JSON — JSON-строки автоматически форматируются и подсвечиваются

Файл обновляется при каждом новом логе, поэтому вы можете держать его открытым в браузере и наблюдать за логами в реальном времени.

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

htmllogs-0.1.0.tar.gz (9.1 kB view details)

Uploaded Source

Built Distribution

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

htmllogs-0.1.0-py3-none-any.whl (9.7 kB view details)

Uploaded Python 3

File details

Details for the file htmllogs-0.1.0.tar.gz.

File metadata

  • Download URL: htmllogs-0.1.0.tar.gz
  • Upload date:
  • Size: 9.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.2

File hashes

Hashes for htmllogs-0.1.0.tar.gz
Algorithm Hash digest
SHA256 cf809c085960d0e1bad3bc76e634773934f75635d1e8bdfbdef21831fdd81786
MD5 4a8cc43e63688bb2d2d474a6e277a90e
BLAKE2b-256 ebb42e4f7746d8ffdf9b37dc24ab4bba0bb926a2492ade31e9e2b5f4256153c3

See more details on using hashes here.

File details

Details for the file htmllogs-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: htmllogs-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 9.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.2

File hashes

Hashes for htmllogs-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 99e90b0de8e3a3227d66bdb358c496542ffe898d8fe55fb67e9a5b10b8fb6436
MD5 67b380a77f7a9f6abe0c57e2e622a998
BLAKE2b-256 0dbc5172b609f0f52a27611b63a265e143173bfd2351364bb6d7bc201b4db2f7

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