捕获traceback
Python中的traceback模块被用于跟踪异常返回信息,可以在logging中记录下traceback,
代码:
import logging
logger = logging.getLogger(__name__)
logger.setLevel(level = logging.INFO)
handler = logging.FileHandler("log.txt")
handler.setLevel(logging.INFO)
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
handler.setFormatter(formatter)
console = logging.StreamHandler()
console.setLevel(logging.INFO)
logger.addHandler(handler)
logger.addHandler(console)
logger.info("Start print log")
logger.debug("Do something")
logger.warning("Something maybe fail.")
try:
open("sklearn.txt","rb")
except (SystemExit,KeyboardInterrupt):
raise
except Exception:
logger.error("Faild to open sklearn.txt from logger.error",exc_info = True)
logger.info("Finish")
#在这里也可以将日志捕获异常编写成一个通用类,然后尽量分各种类型的traceback去编写捕获方法
#后续实现了会贴出代码来~也可以使用logger.exception(msg,_args),它等价于logger.error(msg,exc_info = True,_args),
将
logger.error("Faild to open sklearn.txt from logger.error",exc_info = True)替换为,
logger.exception("Failed to open sklearn.txt from logger.exception")控制台和日志文件log.txt中输出,
参考:https://www.cnblogs.com/wf-linux/archive/2018/08/01/9400354.html
Start print log
Something maybe fail.
Failed to open sklearn.txt from logger.exception
Traceback (most recent call last):
File "G:\zhb7627\Code\Eclipse WorkSpace\PythonTest\test.py", line 23, in <module>
open("sklearn.txt","rb")
IOError: [Errno 2] No such file or directory: 'sklearn.txt'
Finish版权声明:本文为pansaky原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。