6.3 Логирование приложений
2 из 2 шагов пройдено

Использование логирования

Для эффективной и организованной работы с логированием в приложениях, в Python существует модуль logging, который предоставляет различные функции и методы для регистрации сообщений и событий. Однако простое использование модуля logging может привести к хаотичной записи логов, что затрудняет их понимание и анализ.

Для более гибкой организации и систематизации регистрации логов рекомендуется использование библиотеки с поддержкой уровней логирования. Они помогают определить уровень и категорию логирования для каждого сообщения или события. Каждое сообщение или событие может быть отнесено к определенной категории и уровню квалификации, что в свою очередь упрощает анализ логов.

Одной из лучших библиотек является использование loguru. Модуль loguru расширяет функционал модуля logging и предоставляет удобные инструменты для работы с логами.

С использованием библиотеки квалификации в Python можно осуществлять следующие действия:

  1. Конфигурация уровней. Можно определить несколько уровней, например: debug, info, warning, error и critical. Каждый уровень будет соответствовать определенной важности сообщения.
  2. Определение категорий квалификации. Можно создать категории, например: database, network, api, а также определить собственные категории, связанные с особенностями приложения.
  3. Присвоение каждому сообщению или событию определенного уровня и категории квалификации. Это позволяет логировать только те события, которые относятся к интересующим нас категориям и имеют достаточный уровень важности.
  4. Фильтрация логов по уровню и категории квалификации. Можно установить правила фильтрации, которые позволят отображать только те сообщения, которые соответствуют определенным уровням и категориям.

Далее нам нужно создать приложение FastAPI. В этом примере мы создадим простое приложение. Когда мы будем обращаться к корневой пути сайта, мы запишем обращение в журнал и вызовем функцию hello_world,  и сама функция тоже добавит запись  в журнал.

Установим библиотеку журналирования:

pip install loguru

И напишем следующий код: 

from fastapi import FastAPI
from loguru import logger

app = FastAPI()

logger.add("info.log")


@app.get("/{name}")
async def main_page(name):
    logger.info("Hello from the root path")
    hello_world()
    return {"message": f"Hello {name}"}


def hello_world():
    logger.info("hello() called!")

Разберем основные строчки кода:

logger.add("info.log"), первым делом мы подключаем файл для логов. А далее с помощью метода logger.info() мы записываем в этот файл необходимые данные.

Запустим сервер, при первом запуске у нас будет создан файл info.log. Попробуем перейти по адресу http://127.0.0.1:8000/Ilya. В результате мы увидим в консоли следующий лог:

2024-05-04 13:06:00.208 | INFO     | logger:main_page:11 - Hello from the root path
2024-05-04 13:06:00.210 | INFO     | logger:hello_world:17 - hello() called!
INFO:     127.0.0.1:49307 - "GET /Ilya HTTP/1.1" 200 OK

Также если мы откроем файл info.log, мы увидим следующее содержание.

Как мы видим, наше логирование успешно работает, в следующем шаге мы разберем основные возможности данной библиотеки.


Будьте вежливы и соблюдайте наши принципы сообщества. Пожалуйста, не оставляйте решения и подсказки в комментариях, для этого есть отдельный форум.
Нет обсуждений. Начните первое.