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
yextra
.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 porsys.exc_info()
) o una instancia de excepción, se utiliza; de lo contrario, se llama asys.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")