Как узнать значения аргументов функции, которое ей передали?
Есть такое задание:
- Написать декоратор, который будет логировать (записывать в лог файл) ошибки из декорируемой функции и выбрасывать их дальше.
- Имя файла лога - function_errors.log
- Формат лога: <имя функции> <параметры вызова> <тип ошибки> <текст ошибки>
- Лог файл открывать каждый раз при ошибке в режиме 'a'
вот мое решение:
def log_errors(func):
def suragate(*args, **kwargs):
try:
result = func(*args, **kwargs)
return result
except Exception as exp:
with open('function_errors.txt', 'a') as file:
log_string = f'<{func.__name__}><{type(exp)}><{exp}><{exp.args}>\n'
file.write(log_string)
print(exp)
return suragate
Но, я не понимаю, как в строке лога, после имени функции, получить параметры вызова?