Sto cercando di imparare come funziona un'applicazione. E per questo sto inserendo i comandi di debug come prima riga del corpo di ogni funzione con l'obiettivo di registrare il nome della funzione e il numero di riga (all'interno del codice) in cui invio un messaggio all'output del log. Infine, poiché questa applicazione comprende molti file, desidero creare un unico file di registro in modo da poter comprendere meglio il flusso di controllo dell'applicazione.
Ecco quello che so:
per ottenere il nome della funzione, posso usare
function_name.__name__ma non voglio usare function_name (in modo da poter copiare e incollare rapidamente un genericoLog.info("Message")nel corpo di tutte le funzioni). So che questo potrebbe essere fatto in C usando la__func__macro ma non sono sicuro di Python.per ottenere il nome del file e il numero di riga, ho visto che (e credo che) la mia applicazione utilizza la
locals()funzione Python ma in una sintassi di cui non sono completamente a conoscenza, ad esempio:options = "LOG.debug('%(flag)s : %(flag_get)s' % locals())e l'ho provato usando likeLOG.info("My message %s" % locals())che produce qualcosa di simile{'self': <__main__.Class_name object at 0x22f8cd0>}. Qualche input su questo per favore?So come utilizzare la registrazione e aggiungere un gestore per accedere a un file, ma non sono sicuro che un singolo file possa essere utilizzato per registrare tutti i messaggi di registro nell'ordine corretto delle chiamate di funzione nel progetto.
Apprezzerei davvero qualsiasi aiuto disponibile.
Grazie!
import pdb; pdb.set_trace()e quindi eseguire il passaggio del codice in modo interattivo. Questo può aiutarti a tracciare il flusso del programma.