Я намагаюся дізнатися, як працює програма. І для цього я вставляю команди налагодження як перший рядок тіла кожної функції з метою реєстрації імені функції, а також номера рядка (в коді), куди я надсилаю повідомлення на вихід журналу. Нарешті, оскільки ця програма складається з багатьох файлів, я хочу створити єдиний файл журналу, щоб я міг краще зрозуміти потік управління додатком.
Ось що я знаю:
для отримання імені функції я можу використовувати,
function_name.__name__
але я не хочу використовувати ім'я функції_назви (щоб я міг швидко скопіювати і вставити загальнеLog.info("Message")
в тіло всіх функцій). Я знаю, що це можна зробити в C за допомогою__func__
макросу, але я не впевнений у python.для отримання імені файлу та номера рядка я бачив, що (і я вважаю, що) моя програма використовує
locals()
функцію Python, але в синтаксисі, про який я не знаю, наприклад:options = "LOG.debug('%(flag)s : %(flag_get)s' % locals())
і я спробував це, використовуючи,LOG.info("My message %s" % locals())
що створює щось подібне{'self': <__main__.Class_name object at 0x22f8cd0>}
. Будь-який внесок щодо цього, будь ласка?Я знаю, як використовувати журнал і додати до нього обробник, щоб увійти до файлу, але я не впевнений, чи може один файл використовуватись для запису всіх повідомлень журналу у правильному порядку функціональних викликів у проекті.
Я дуже вдячний за будь-яку допомогу.
Дякую!
import pdb; pdb.set_trace()
, а потім інтерактивно переглядати код. Це може допомогти вам простежити потік програми.