validar try tipos sirve sintaxis que por para invalid excepciones errores ejemplos diferentes python exception logging

try - ¿Cómo registro una excepción en advertencia o nivel de información con traceback utilizando el marco de registro de Python?



try except python 3 (8)

Aquí hay uno que funciona (python 2.6.5).

logger.critical("caught exception, traceback =", exc_info=True)

Usando algo como esto:

try: # Something... except Exception as excep: logger = logging.getLogger("component") logger.warning("something raised an exception: " + excep) logger.info("something raised an exception: " + excep)

Preferiría no tenerlo en la causa del nivel de error en mi caso especial, no es un error.


De la documentación de registro :

Hay tres argumentos de palabras clave en kwargs que se inspeccionan: exc_info , stack_info y extra .

Si exc_info no se evalúa como falso, provoca que se agregue información de excepción al mensaje de registro. Si se proporciona una tupla de excepción (en el formato devuelto por sys.exc_info() ) o una instancia de excepción, se utiliza; de lo contrario, se llama a sys.exc_info() para obtener la información de la excepción.

Entonces hazlo

logger.warning("something raised an exception:", exc_info=True)


En algunos casos, es posible que desee utilizar la biblioteca de warnings . Puede tener un control muy detallado sobre cómo se muestran sus advertencias.


Está bastante bien explicado here .

Sin embargo, estás bastante cerca. Usted tiene la opción de simplemente usar el valor predeterminado con

logging.warning("something raised an exception: " + excep)

O puede seguir algunos de los ejemplos en la página vinculada y obtener más sofisticado con múltiples destinos y niveles de filtro.


Intenta usar Logger.exception .

Logger.exception () crea un mensaje de registro similar a Logger.error (). La diferencia es que Logger.exception () vuelca un rastro de pila junto con él. Llame a este método solo desde un manejador de excepciones.


Pude mostrar los mensajes de registro en un bloque de excepción con el siguiente fragmento de código:

# basicConfig have to be the first statement logging.basicConfig(level=logging.INFO) logger = logging.getLogger("componet") try: raise BaseException except BaseException: logger.warning("something raised an exception: ",exc_info=True) logger.info("something raised an exception: " ,exc_info=True)


Puedes intentar esto:

from logging import getLogger logger = getLogger(''warn'') try: # Somethings that is wrong. except Exception as exp: logger.warn("something raised an exception: " , exc_info=True) logger.warn("something raised an exception: {}".format(exp)) # another way


Use Logger.exception .

try: #Something... except BaseException, excep: logger = logging.getLogger("component") logger.exception("something raised an exception")