web-dev/hws/hw-2/log_decorator.py
2026-02-13 15:01:19 +03:00

31 lines
963 B
Python

from datetime import datetime
import time
def function_logger(log_file):
def decorator(func):
def wrapper(*args, **kwargs):
start_time = datetime.now()
start_timestamp = time.time()
result = func(*args, **kwargs)
end_time = datetime.now()
duration = time.time() - start_timestamp
with open(log_file, 'a', encoding='utf-8') as f:
f.write(func.__name__ + '\n')
f.write(str(start_time) + '\n')
if args:
f.write(str(args) + '\n')
if kwargs:
f.write(str(kwargs) + '\n')
if result is not None:
f.write(str(result) + '\n')
else:
f.write('-\n')
f.write(str(end_time) + '\n')
f.write(f"{duration:.6f}\n")
return result
return wrapper
return decorator