Logging module for loki
Project description
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"})
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
lokilog-1.0.0.tar.gz
(6.2 kB
view details)
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 lokilog-1.0.0.tar.gz.
File metadata
- Download URL: lokilog-1.0.0.tar.gz
- Upload date:
- Size: 6.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.1.3 CPython/3.13.4 Windows/11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0beecd8e16f886ad5f8ebb760470399a96e5804060d00c43381e600824116dbd
|
|
| MD5 |
6b4113e3c3ec94f7c5d9d9723a71002a
|
|
| BLAKE2b-256 |
59e82ba750d9de348408e0d35e85c04484dc1556685c55ea34ebc35b16a969a2
|
File details
Details for the file lokilog-1.0.0-py3-none-any.whl.
File metadata
- Download URL: lokilog-1.0.0-py3-none-any.whl
- Upload date:
- Size: 7.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.1.3 CPython/3.13.4 Windows/11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f14c7a5a761345ddab66f1fd50f66b5679be968dde83865e8bb97eeebe18e9be
|
|
| MD5 |
4d20a317a926c5d9b3250855c776ad92
|
|
| BLAKE2b-256 |
87e7b5352ff1e1170a3880a533aa60947605b4e3ad400e844b3fea4198f96e2a
|