Estou tentando aprender como funciona um aplicativo. E para isso estou inserindo comandos de depuração como a primeira linha do corpo de cada função com o objetivo de registrar o nome da função, bem como o número da linha (dentro do código) onde envio uma mensagem para a saída do log. Por fim, como este aplicativo é composto por muitos arquivos, desejo criar um único arquivo de log para poder entender melhor o fluxo de controle do aplicativo.
Aqui está o que eu sei:
para obter o nome da função, posso usar,
function_name.__name__
mas não quero usar o function_name (para que eu pudesse copiar e colar rapidamente um genéricoLog.info("Message")
no corpo de todas as funções). Eu sei que isso pode ser feito em C usando__func__
macro, mas não tenho certeza sobre python.para obter o nome do arquivo e o número da linha, vi que (e acredito que) meu aplicativo está usando a
locals()
função Python , mas em uma sintaxe que não conheço completamente, por exemplo:options = "LOG.debug('%(flag)s : %(flag_get)s' % locals())
e tentei usando likeLOG.info("My message %s" % locals())
que produz algo semelhante{'self': <__main__.Class_name object at 0x22f8cd0>}
. Alguma entrada sobre isso, por favor?Eu sei como usar o log e adicionar manipulador a ele para registrar em um arquivo, mas não tenho certeza se um único arquivo pode ser usado para registrar todas as mensagens de log na ordem correta das chamadas de função no projeto.
Eu apreciaria muito qualquer ajuda.
Obrigado!
import pdb; pdb.set_trace()
e, em seguida, percorrer o código de forma interativa. Isso pode ajudá-lo a rastrear o fluxo do programa.