Python 没有记录错误输出
Python not logging error output
我正在使用 Jupyter Notebook 开发一些 Python。这是我第一次尝试记录错误,我遇到了一个问题,即没有错误记录到我的错误文件中。
我正在使用:
import logging
logger = logging.getLogger('error')
logger.propagate = False
hdlr = logging.FileHandler("error.log")
formatter = logging.Formatter('%(asctime)s %(message)s')
hdlr.setFormatter(formatter)
logger.addHandler(hdlr)
logger.setLevel(logging.DEBUG)
创建记录器。
然后我正在使用一个 try/Except 块,该块是通过使用我的数据库中不存在的列有意调用的(用于测试):
try:
some_bad_call_to_the_database('start',group_id)
except Exception as e:
logger.exception("an error I would like to log")
print traceback.format_exc(limit=1)
异常被调用,从我笔记本中的输出可以看出:
Traceback (most recent call last):
File "<ipython-input-10-ef8532b8e6e0>", line 19, in <module>
some_bad_call_to_the_database('start',group_id)
InternalError: (1054, u"Unknown column 'start_times' in 'field list'")
但是,error.log 没有被写入。如有任何想法,我们将不胜感激。
您正在使用 logging.exception
,它委托给根记录器,而不是使用 logger.exception
,它会使用您的(并写入 error.log
)。
尝试:
except Exception as e:
excep = logger.info("an error I would like to log")
有关更多信息,请查看文档 https://docs.python.org/2/library/logging.html
祝你有美好的一天!
我正在使用 Jupyter Notebook 开发一些 Python。这是我第一次尝试记录错误,我遇到了一个问题,即没有错误记录到我的错误文件中。
我正在使用:
import logging
logger = logging.getLogger('error')
logger.propagate = False
hdlr = logging.FileHandler("error.log")
formatter = logging.Formatter('%(asctime)s %(message)s')
hdlr.setFormatter(formatter)
logger.addHandler(hdlr)
logger.setLevel(logging.DEBUG)
创建记录器。
然后我正在使用一个 try/Except 块,该块是通过使用我的数据库中不存在的列有意调用的(用于测试):
try:
some_bad_call_to_the_database('start',group_id)
except Exception as e:
logger.exception("an error I would like to log")
print traceback.format_exc(limit=1)
异常被调用,从我笔记本中的输出可以看出:
Traceback (most recent call last):
File "<ipython-input-10-ef8532b8e6e0>", line 19, in <module>
some_bad_call_to_the_database('start',group_id)
InternalError: (1054, u"Unknown column 'start_times' in 'field list'")
但是,error.log 没有被写入。如有任何想法,我们将不胜感激。
您正在使用 logging.exception
,它委托给根记录器,而不是使用 logger.exception
,它会使用您的(并写入 error.log
)。
尝试:
except Exception as e:
excep = logger.info("an error I would like to log")
有关更多信息,请查看文档 https://docs.python.org/2/library/logging.html
祝你有美好的一天!