使用类似的东西:
try:
# Something...
except Exception as excep:
logger = logging.getLogger("component")
logger.warning("something raised an exception: " + excep)
logger.info("something raised an exception: " + excep)
我宁愿没有错误级别的原因,在我的特殊情况下,这不是错误。
答案 0 :(得分:64)
kwargs
中有三个被检查的关键字参数:exc_info
,stack_info
和extra
。如果
exc_info
未评估为false,则会导致将异常信息添加到日志消息中。如果提供了异常元组(以sys.exc_info()
返回的格式)或异常实例,则使用它;否则,调用sys.exc_info()
来获取异常信息。
所以:
logger.warning("something raised an exception:", exc_info=True)
答案 1 :(得分:4)
这是一个有效的(python 2.6.5)。
logger.critical("caught exception, traceback =", exc_info=True)
答案 2 :(得分:2)
你可以试试这个:
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
答案 3 :(得分:-1)
在某些情况下,您可能希望使用warnings库。您可以对警告的显示方式进行非常精细的控制。
答案 4 :(得分:-1)
我能够使用以下代码片段在异常块中显示日志消息:
# 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)
答案 5 :(得分:-2)
尝试使用Logger.exception。
Logger.exception()创建一个日志 消息类似于Logger.error()。该 区别在于Logger.exception() 转储堆栈跟踪。 仅从a调用此方法 异常处理程序。
答案 6 :(得分:-5)
try:
#Something...
except BaseException, excep:
logger = logging.getLogger("component")
logger.exception("something raised an exception")