Junior — Senior
Декоратор для логирования длительных асинхронных функций
livecode
Condição da tarefa
Необходимо реализовать декоратор slowlog, который будет измерять время работы асинхронной функции. Если время выполнения превышает заданный порог (в секундах), информация о таком вызове должна выводиться в консоль через модуль logging.
import time, asyncio, logging
logging.basicConfig(level=logging.INFO)
def slowlog():
# ...
@slowlog(limit=2)
async def test_func(wait_time):
# ...
time.sleep(wait_time)
return wait_time
asyncio.run(test_func(1)) # не должно логироваться
asyncio.run(test_func(3)) # должно логироваться
В примере показано, как использовать декоратор: при вызове test_func(1) лог не появляется, а при test_func(3) — появляется, так как время выполнения превышает установленный лимит.