捕获异常,并保存为logging文件

____tz_zs

·

#!/usr/bin/python2.7
# -*- coding:utf-8 -*-

"""
@author:    tz_zs
"""
import logging
import time
import traceback
import sys

logging.basicConfig(level=logging.DEBUG,
                    format='asctime:        %(asctime)s \n'  # 时间
                           'filename_line:  %(filename)s_[line:%(lineno)d] \n'  # 文件名_行号
                           'level:          %(levelname)s \n'  # log级别
                           'message:        %(message)s \n',  # log信息
                    datefmt='%a, %d %b %Y %H:%M:%S',
                    filename=sys.path[1] + '/output/test_try_logging.log',  # sys.path[1]获取当前的工作路径
                    filemode='w')  # 如果模式为'a',则为续写(不会抹掉之前的log)
i = 0
while i < 3:
    i += 1
    time.sleep(1)
    try:
        a = 1 / 0
    except ZeroDivisionError, e:
        # traceback.format_exc()为详细情况
        logging.debug("%s____%s\n"
                      "traceback.format_exc():____%s" % (ZeroDivisionError, e, traceback.format_exc()))
        continue
    except BaseException, e:
        logging.debug("%s____%s" % (BaseException, e))
        continue

·

log文件

asctime:        Mon, 02 Jul 2018 16:28:56 
filename_line:  test_try_logging.py_[line:31] 
level:          DEBUG 
message:        <type 'exceptions.ZeroDivisionError'>____integer division or modulo by zero
traceback.format_exc():____Traceback (most recent call last):
  File "/home/zmate/PycharmProjects/ZM_Lab_AI_research/development/test/test_try_logging.py", line 27, in <module>
    a = 1 / 0
ZeroDivisionError: integer division or modulo by zero
 

asctime:        Mon, 02 Jul 2018 16:28:57 
filename_line:  test_try_logging.py_[line:31] 
level:          DEBUG 
message:        <type 'exceptions.ZeroDivisionError'>____integer division or modulo by zero
traceback.format_exc():____Traceback (most recent call last):
  File "/home/zmate/PycharmProjects/ZM_Lab_AI_research/development/test/test_try_logging.py", line 27, in <module>
    a = 1 / 0
ZeroDivisionError: integer division or modulo by zero
 

asctime:        Mon, 02 Jul 2018 16:28:58 
filename_line:  test_try_logging.py_[line:31] 
level:          DEBUG 
message:        <type 'exceptions.ZeroDivisionError'>____integer division or modulo by zero
traceback.format_exc():____Traceback (most recent call last):
  File "/home/zmate/PycharmProjects/ZM_Lab_AI_research/development/test/test_try_logging.py", line 27, in <module>
    a = 1 / 0
ZeroDivisionError: integer division or modulo by zero
·


参考文章:

·

猜你喜欢

转载自blog.csdn.net/tz_zs/article/details/80885905