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) dove invio un messaggio all'output del registro. Infine, poiché questa applicazione comprende molti file, voglio creare un unico file di registro in modo da poter comprendere meglio il flusso di controllo dell'applicazione.
Ecco cosa so:
per ottenere il nome della funzione, posso usare
nome_funzione.__nome__
ma non voglio usare il nome_funzione (in modo da poter copiare e incollare rapidamente unLog generico .info("Message")
nel corpo di tutte le funzioni). So che questo potrebbe essere fatto in C usando la macro__func__
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 stia usando la funzione Python
locals()
ma in una sintassi che sono io non del tutto consapevole ad esempio:options = "LOG.debug("%(flag)s : %(flag_get)s" % locals())
e l'ho provato usando comeLOG.info ("Il mio messaggio %s" % locals())
che produce qualcosa come{"self": <__main__.oggetto Class_name at 0x22f8cd0>}
. Qualche input su questo per favore?So come usare la registrazione e aggiungere un gestore per accedere a un file ma non sono sicuro che un singolo file possa essere usato per registrare tutti i messaggi di registro nell'ordine corretto delle chiamate di funzione nel progetto.
Apprezzerei molto qualsiasi aiuto.
Grazie!