Отже, я зробив це: Бібліотека Python для логування в Azure Table Storage (і пережив, щоб розповісти про це)

Світ не потребує ще однієї бібліотеки для логування, але я її все ж створив. Чому? Тому що мені захотілося зануритися в розробку бібліотек на Python і її публікацію. І, зрештою, я створив mz-logging-azure-tablestorage.

pic

Ця бібліотека дозволяє зручно записувати дані 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 mz
loggingazuretablestorage.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("Операція не вдалася", trace
id="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)