Світ не потребує ще однієї бібліотеки для логування, але я її все ж створив. Чому? Тому що мені захотілося зануритися в розробку бібліотек на Python і її публікацію. І, зрештою, я створив mz-logging-azure-tablestorage
.
Ця бібліотека дозволяє зручно записувати дані Python-додатка в Azure Table Storage. Вона підтримує структуроване логування, trace ID для зручного відлагодження та дозволяє додавати метадані, ніби ви натираєте стейк сіллю з ентузіазмом, як у Salt Bae.
Azure Table Storage був обраний, тому що це сховище даних без схеми, яке добре масштабується і зручно для зберігання великих обсягів інформації. Та й кредити Azure, зізнаюся, спонукали до вибору цього рішення.
Основні можливості цієї бібліотеки:
- Асинхронне логування: Забудьте про затримки під час запису логів.
- Структуроване логування: Замість простого тексту — працюйте з організованими даними.
- Підтримка trace ID: Відслідковуйте кожен запит, який проходить через вашу систему.
- Автоматичне відстеження місця виклику: Ви одразу побачите, звідки прийшло повідомлення в журналі.
- Конфігуровані рівні логування: Можна налаштувати рівні важливості повідомлень, від тих, що просто інформують (DEBUG), до критичних помилок (CRITICAL).
Щоб почати використовувати бібліотеку:
1. Встановіть: pip install mz-logging-azure-tablestorage==1.0.0
2. Налаштуйте Azure Table Storage, вказавши рядок підключення та ім’я таблиці.
3. Імпортуйте і налаштуйте бібліотеку.
from mzloggingazuretablestorage import AzureLogger
from mzloggingazuretablestorage.storage import AzureTableStorage
storage = AzureTableStorage(
connectionstring="yourazureconnectionstring",
table_name="logs"
)
logger = AzureLogger(
storage=storage,
loggername="myservice"
)
await logger.info("Операція завершена", metadata={"userid": "123", "action": "login"})
await logger.error("Операція не вдалася", traceid="custom-trace", metadata={"error_code": "AUTH001"})
Ця бібліотека не змінить світ логування, але вона є надійним інструментом, перевіреним на практиці. Я вклав у неї багато зусиль, і отримав безцінний досвід у пакуванні Python, тестуванні та використанні CI/CD.
Згадався також той випадок, коли я три дні відлагоджував файл YAML через те, що використовував пробіли замість табуляцій, або коли випадково завантажив версію з підключенням Azure, що було зашите в коді. Давайте не згадувати про це.
Якщо ви хочете спробувати щось нове, спробуйте mz-logging-azure-tablestorage
. Це може бути цікавим досвідом, навіть якщо ви просто захочете посміятися з мого коду. Знайти її можна на PyPI.
Якщо хочете зробити внесок або просто вказати на помилки — проект доступний на GitHub.
Це бібліотека з ліцензією MIT, тому, якщо хочете поділитися, не соромтесь!
Перекладено з: So, I Made a Thing: A Python Library for Azure Table Storage Logging (and Lived to Tell the Tale)