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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cf809c085960d0e1bad3bc76e634773934f75635d1e8bdfbdef21831fdd81786
|
|
| MD5 |
4a8cc43e63688bb2d2d474a6e277a90e
|
|
| BLAKE2b-256 |
ebb42e4f7746d8ffdf9b37dc24ab4bba0bb926a2492ade31e9e2b5f4256153c3
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
99e90b0de8e3a3227d66bdb358c496542ffe898d8fe55fb67e9a5b10b8fb6436
|
|
| MD5 |
67b380a77f7a9f6abe0c57e2e622a998
|
|
| BLAKE2b-256 |
0dbc5172b609f0f52a27611b63a265e143173bfd2351364bb6d7bc201b4db2f7
|