È possibile decorare/estendere il sistema di registrazione standard python, in modo che quando viene richiamato un metodo di registrazione, esso registra anche il file e il numero di riga in cui è stato chiamato o forse il metodo che lo ha invocato?Come registrare il nome del file di origine e il numero di riga in Python
risposta
Certo, controllare formatters nella documentazione di registrazione. Specificamente le variabili lineno e pathname.
% (percorso) s percorso completo del file di origine in cui è stata emessa la chiamata di registrazione (se disponibile).
% (nome file) s Nome file parte del percorso.
% (modulo) s Modulo (nome porzione del nome file).
% (funcName) s Nome della funzione che contiene la chiamata di registrazione.
% (lineno) d Numero di riga di origine in cui è stata emessa la chiamata di registrazione (se disponibile).
simile a questa:
formatter = logging.Formatter('[%(asctime)s] p%(process)s {%(pathname)s:%(lineno)d} %(levelname)s - %(message)s','%m-%d %H:%M:%S')
In cima a Seb's very useful answer, ecco un frammento di codice pratico che dimostra l'utilizzo logger con un formato ragionevole:
#!/usr/bin/env python
import logging
logging.basicConfig(format='%(asctime)s,%(msecs)d %(levelname)-8s [%(filename)s:%(lineno)d] %(message)s',
datefmt='%d-%m-%Y:%H:%M:%S',
level=logging.DEBUG)
logger = logging.getLogger('stackoverflow_rocks')
logger.debug("This is a debug log")
logger.info("This is an info log")
logger.critical("This is critical")
logger.error("An error occurred")
genera questo output:
06-06-2017:17:07:02,158 DEBUG [log.py:11] This is a debug log
06-06-2017:17:07:02,158 INFO [log.py:12] This is an info log
06-06-2017:17:07:02,158 CRITICAL [log.py:13] This is critical
06-06-2017:17:07:02,158 ERROR [log.py:14] An error occurred
Utilizzare questo per ulteriori dettagli: formatter = logging.Formatter ( '% (asctime) s,% (levelname) -8s [% (nome file) s:% (modulo) s:% (funcName) s:% (lineno) d]% (messaggio) s ') –
- 1. Come avere il nome del file e il numero di riga nei log GAE Python logging.info?
- 2. Come stampare il nome del file e il numero di riga del test in python nose?
- 3. boost log per stampare il nome del file del codice sorgente e il numero di riga
- 4. Nome file grep e numero di riga
- 5. Stampa il nome del file, il numero di riga e il nome funzione di una funzione di chiamata - C Prog
- 6. Python Quando rilevo un'eccezione, come ottengo il tipo, il file e il numero di riga?
- 7. Cpp preprocessore e nome base del nome, il numero di riga come stringa
- 8. Come ottenere il metodo circostante nel file di origine Java per un determinato numero di riga
- 9. Come trovare il numero/nome del carattere unicode in Python?
- 10. Ottenere il nome del ramo di origine genitore in git?
- 11. come ottenere il nome file del chiamante, il nome del metodo in python
- 12. Ottieni il numero di porta per il nome del servizio?
- 13. Come ottenere il nome del pacchetto o classe di origine file in Android?
- 14. Come modificare il nome del file di output del compilatore Nim e il nome
- 15. Cambia il nome del file di guerra generato e il file di guerra duplicato
- 16. Come ottenere il nome file del modulo __main__ in Python?
- 17. Come ottenere il file corrente e il numero di riga in Ruby?
- 18. python: Crea file ma se il nome esiste aggiungi numero
- 19. Come recuperare il nome e il numero di telefono del contatto in Android
- 20. Ottieni il file di origine, il metodo e la riga nell'eccezione
- 21. Registrazione Python - determinare il numero del livello dal nome
- 22. Quando rilevo un'eccezione, come ottengo il tipo, il file e il numero di riga del fotogramma precedente?
- 23. Come estrarre il nome del file dal nome del percorso del file?
- 24. Arresta cl.exe dall'emissione del nome file di origine
- 25. Come posso inviare il numero di riga dal traceback di Python in vim?
- 26. come ottenere il numero di riga di un errore da exec o execfile in Python
- 27. Come trovare il file in ogni directory con il numero più alto come nome file?
- 28. Come si accede all'errore di origine, al file di origine e al numero di riga di un'eccezione da utilizzare in una pagina di errore personalizzata?
- 29. Log4j2 AsyncLogger con appender di laminazione file non mostrando il numero di riga del file
- 30. Origine del nome jQuery
+1: citazione del documentazione. –