26 lines
968 B
Python
26 lines
968 B
Python
import os
|
|
from .function_logger import FunctionLogger
|
|
import time
|
|
import functools
|
|
|
|
|
|
def log_entry_exit_async(func):
|
|
@functools.wraps(func)
|
|
async def wrapper(*args, **kwargs):
|
|
file_path = os.path.relpath(func.__code__.co_filename)
|
|
function_logger = FunctionLogger(sender_id="log_entry_exit_async", receiver_id="function_logger")
|
|
start_time = time.process_time_ns()
|
|
try:
|
|
await function_logger.log_enter(func.__name__, file_path)
|
|
result = await func(*args, **kwargs)
|
|
await function_logger.log_exit(func.__name__, file_path, time.process_time_ns() - start_time)
|
|
return result
|
|
except Exception as exception:
|
|
await function_logger.log_exception(
|
|
exception=exception,
|
|
function=func.__name__,
|
|
file=file_path,
|
|
excution_time_in_ns=time.process_time_ns() - start_time)
|
|
raise
|
|
return wrapper
|