Quiero verificar los errores en un archivo de fondo particular, pero el flujo de error estándar está siendo controlado por el programa en primer plano y los errores en el archivo en la pregunta no son siendo mostrado. Sin embargo, puedo usar el módulo logging
y escribir salida en un archivo. Me preguntaba cómo puedo usar esto para registrar todas las excepciones, errores y sus seguimientos.Usando el módulo de registro de Python para registrar todas las excepciones y errores
Respuesta
Probablemente sea una mala idea registrar cualquier excepción lanzada dentro del programa, ya que Python usa excepciones también para el flujo de control normal.
Por lo tanto, solo debe registrar excepciones no detectadas. Puede hacerlo fácilmente usando el registrador exception()
method, una vez que tenga un objeto de excepción.
para manejar todas las excepciones no capturadas, puede envolver punto de entrada de la escritura en un bloque try...except
, o mediante la instalación de un controlador de excepción personalizada por la re-asignación de sys.excepthook()
:
import logging
import sys
logger = logging.getLogger('mylogger')
# Configure logger to write to a file...
def my_handler(type, value, tb):
logger.exception("Uncaught exception: {0}".format(str(value)))
# Install exception handler
sys.excepthook = my_handler
# Run your main script here:
if __name__ == '__main__':
main()
¡Gracias! Esto es exactamente lo que necesitaba. –
¿No es buena idea agregar 'sys .__ excepthook __ (tipo, valor, tb)' a su 'my_handler', por lo que puede procesar acciones predeterminadas en caso de excepción? – troyane
@Ferdinand Beyer: ordenado. Tener 'logger.exception (" excepción no detectada: {0}: {1} ". Format (str (value .__ class __.__ name__), str (value)))' da en mi caso 'ERROR - excepción no detectada: IndexError: list index out of range' e imprime por alguna razón 'None'. ¿Cómo también obtengo el rastreo completo? 'tb' parece ser un objeto de rastreo, pero' traceback.print_tb (tb) 'también escupe' None'. – bioslime
- 1. Registrar todas las excepciones en la aplicación .NET usando log4net
- 2. Registrar todas las excepciones en una aplicación pyqt4
- 3. Captura de todas las excepciones en Python
- 4. Spring - slf4J: ¿cómo registrar automáticamente errores y excepciones?
- 5. Errores con el módulo de mecanización de Python
- 6. Spring MVC no registra todas las excepciones
- 7. Mala idea para detectar todas las excepciones en Python
- 8. Prácticas recomendadas para el registro de excepciones de servicios GWT
- 9. NetBeans y detener/interrumpir todas las excepciones?
- 10. Python cruzada módulo de registro
- 11. ¿Las excepciones son realmente para errores excepcionales?
- 12. ¿Cómo configuro la gema Airbrake para registrar todas las excepciones de Rails tanto en entornos de desarrollo como de producción?
- 13. Registro de errores de ELMAH para el servicio de Windows
- 14. ¿Cómo se puede usar el módulo de registro en python con el módulo unittest?
- 15. usando excepciones para propósitos que no sean errores
- 16. ¿Cómo registrar todas las consultas de Doctrine en el archivo?
- 17. ¿Cómo enumerar todas las funciones en un módulo de Python?
- 18. ¿Cómo registrar HttpHandler para todas las subcarpetas en Asp.Net?
- 19. ¿Cómo interceptarías todas las excepciones?
- 20. ¿Está capturando todas las excepciones de C++ no controladas?
- 21. Eliminar todas las etiquetas de javascript y las etiquetas de estilo de html con python y el módulo lxml
- 22. Python módulo de registro: registradores personalizados
- 23. El momento adecuado para manejar todas las excepciones
- 24. ¿Debería detectar todas las excepciones?
- 25. Python - buena práctica para detectar errores
- 26. Errores de registro en ASP.NET MVC
- 27. log4net registrar todos los errores de aplicación no controladas
- 28. ¿Cómo uso el módulo Python Scrapy para enumerar todas las URL de mi sitio web?
- 29. ¿Cómo configuro un objetivo NLog para solo registrar excepciones?
- 30. ¿Cómo puedo capturar todas las excepciones de una aplicación wxPython?
Posible duplicado de [Registro de excepciones no capturadas en Python] (http://stackoverflow.com/questions/6234405/logging-uncaught-exceptions-in-python) –