Ведение журнала Python (имя функции, имя файла, номер строки) с использованием одного файла

| | | | | | | | | | | |

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

Вот что я знаю:

  1. для получения имени функции я могу использовать имя_функции.__имя__, но я не хочу использовать имя_функции (чтобы можно было быстро скопировать и вставить общий Log .info("Message") в теле всех функций). Я знаю, что это можно сделать на C с помощью макроса __func__, но я не уверен в python.

  2. для получения имени файла и номера строки, я видел (и я считаю, что) мое приложение использует функцию Python locals(), но с синтаксисом, который я не полностью осведомлен, например: options = "LOG.debug("%(flag)s : %(flag_get)s" % locals()) и я пробовал использовать как LOG.info ("Мое сообщение %s" % locals()), которое создает что-то вроде объекта {"self": <__main__.Class_name по адресу 0x22f8cd0>}. Любые комментарии по этому поводу, пожалуйста?

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

Буду очень признателен за любую помощь.

Спасибо!