lokilog
Lightweight, non-blocking Python logging handler for Grafana Loki.
Features
- Non-blocking: Uses a background thread to ensure logging never stalls your application
- Binary Format: Supports Protobuf + Snappy compression
- Smart Labels: Promotes specific fields from
extrato Loki labels to avoid high cardinality issues.
Dependencies
requestscramjam(for Snappy compression)
Quick Start
Basic Usage
from lokilog import make_loki_handler
import logging
handler, listener = make_loki_handler(
url="http://localhost:3100",
labels={"app": "my_service", "env": "dev"},
extracted_labels=["user_id"]
)
listener.start()
logger = logging.getLogger("my_service")
logger.addHandler(handler)
logger.info("User logged in", extra={"user_id": "123"})
Advanced Config (dictConfig)
logging.config.dictConfig({
"version": 1,
"handlers": {
"loki": {"()": lambda: handler},
},
"loggers": {
"app": {"handlers": ["loki"], "level": "DEBUG"},
},
})
lokilog (RU)
Легковесный неблокирующий логгер для Grafana Loki.
Особенности
- Не блокирует поток: Вся сетевая работа вынесена в фоновый поток
- Бинарный протокол: Поддержка Protobuf + Snappy.
- Умные лейблы: Возможность прокидывать поля из
extraнапрямую в индексы Loki.
Зависимости
requestscramjam(для сжатия Snappy)
Быстрый старт
Простой пример
from lokilog import make_loki_handler
import logging
handler, listener = make_loki_handler(
url="http://localhost:3100",
labels={"app": "my_service", "env": "dev"},
extracted_labels=["user_id"]
)
listener.start()
logger = logging.getLogger("my_service")
logger.addHandler(handler)
logger.info("Пользователь вошел", extra={"user_id": "123"})
Metadata
Release files for lokilog 1.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| lokilog-1.0.0.tar.gz | 6.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| lokilog-1.0.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 14.0 kB
Release files / lokilog-1.0.0.tar.gz
| Download URL | lokilog-1.0.0.tar.gz |
|---|---|
| Size | 6.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
0beecd8e16f886ad5f8ebb760470399a96e5804060d00c43381e600824116dbd
|
|
BLAKE2b-256 checksum How to use checksums |
59e82ba750d9de348408e0d35e85c04484dc1556685c55ea34ebc35b16a969a2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/2.1.3 CPython/3.13.4 Windows/11
|
Release files / lokilog-1.0.0-py3-none-any.whl
| Download URL | lokilog-1.0.0-py3-none-any.whl |
|---|---|
| Size | 7.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
f14c7a5a761345ddab66f1fd50f66b5679be968dde83865e8bb97eeebe18e9be
|
|
BLAKE2b-256 checksum How to use checksums |
87e7b5352ff1e1170a3880a533aa60947605b4e3ad400e844b3fea4198f96e2a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/2.1.3 CPython/3.13.4 Windows/11
|