欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

简单运用logging模块定位代码错误

程序员文章站 2022-07-03 19:29:17
近年来不管是开发还是测试,企业对其的代码能力的要求在逐渐提高,编写与调试是必不可少的工作内容。本文针对如何运用python的logging模块定位错误坐标做出演示,希望能够帮助到大家。非常简单清晰的两个例子。案例一:import logginglogging.basicConfig(level=logging.DEBUG, format='%(asctime)s - %(filename)s[line:%(lineno)d] - %(levelname)s:...

近年来不管是开发还是测试,企业对其的代码能力的要求在逐渐提高,编写与调试是必不可少的工作内容。本文针对如何运用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行有错误,可以直接去该坐标附近排查问题,节约调试时间。当然这种方法是建立在你大约知道错误出在哪块区域,但又不确定,那么就可以用此方法进行地毯式排查。

又是快乐的一天!希望大家也能够做一个快乐的打工人。
简单运用logging模块定位代码错误

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