近年来不管是开发还是测试,企业对其的代码能力的要求在逐渐提高,编写与调试是必不可少的工作内容。本文针对如何运用python的logging模块定位错误坐标做出演示,希望能够帮助到大家。

非常简单清晰的两个例子。
案例一:

import logging
logging.basicConfig(level=logging.DEBUG,
                    format='%(asctime)s - %(filename)s[line:%(lineno)d] - %(levelname)s: %(message)s',
                    filename='log.txt', filemode='w')
''' %(asctime)s是创建日志记录时的时间 %(filename)s是报错的程序名 %(lineno)d是出错坐标 %(levelname)s是错误级别 %(message)s是日志内容 filename='log.txt',在当前目录下生成log.txt记录日志内容 '''
def logging_test():
    logging.info('实验开始')
    try:
        assert 1 == 1                 #因为是正确的,不报错,直接跳入else
    except Exception as e:
        logging.info('这个地方有错误')
    else:
        logging.info('正确')
    logging.info('实验结束')


if __name__ == '__main__':
    logging_test()

日志内容:

2020-12-30 20:59:53,641 - main.py[line:8] - INFO: 实验开始
2020-12-30 20:59:53,641 - main.py[line:14] - INFO: 正确
2020-12-30 20:59:53,641 - main.py[line:15] - INFO: 实验结束

案例二:

import logging
logging.basicConfig(level=logging.DEBUG,
                    format='%(asctime)s - %(filename)s[line:%(lineno)d] - %(levelname)s: %(message)s',
                    filename='log.txt', filemode='w')


def logging_test():
    logging.info('实验开始')
    try:
        assert 1 == 2
    except:
        logging.info('这个地方有错误')
    else:
        logging.info('正确')
    logging.info('实验结束')


if __name__ == '__main__':
    logging_test()

日志内容:

2020-12-30 21:03:42,492 - main.py[line:8] - INFO: 实验开始
2020-12-30 21:03:42,492 - main.py[line:12] - INFO: 这个地方有错误
2020-12-30 21:03:42,493 - main.py[line:15] - INFO: 实验结束

案例二的错误日志中可以清晰地看到,mian.py中第12行有错误,可以直接去该坐标附近排查问题,节约调试时间。当然这种方法是建立在你大约知道错误出在哪块区域,但又不确定,那么就可以用此方法进行地毯式排查。

又是快乐的一天!希望大家也能够做一个快乐的打工人。

本文地址:https://blog.csdn.net/sjx1111111/article/details/111998083