找bug的过程
程序员文章站
2022-03-22 11:35:07
关于昨天程序出差我找bug的过程记录 昨天才程序 与打印日志相关片段 我将其中打印日志出现问题的地方运行,其他地方注释掉 生成的日志 我们发现他运行后内侧应该还存在日志相关函数,我们这时候看看原来的函数 我选择最容易修改的第三种进行修改 最后呢解决了 ......
关于昨天程序出差我找bug的过程记录
昨天才程序
├── xxxx │ ├── src.py │ └── fil_mode.py │ └── data_time.py │ └── loading.py │ └── data_time.py │ └── logger.py
src.py
与打印日志相关片段
if __name__ == '__main__': logger_start('程序主界面') while true: print("\033[0;31;44m\t\t杨大爷超市欢迎您\t\t\t\t\033[5m") print("\033[0;30;42m\t\t输入0进入注册界面\t\t\t\033[5m") print("\033[0;30;42m\t\t输入1进入登入界面\t\t\t\033[5m") print("\033[0;30;42m\t\t输入2进入充值界面\t\t\t\033[5m") print("\033[0;30;42m\t\t输入3进入余额查询界面\t\t\033[5m") print("\033[0;30;42m\t\t输入4进入购物界面\t\t\t\033[5m") print("\033[0;30;42m\t\t输入5进入解冻界面\t\t\t\033[5m") print("\033[0;30;42m\t\t输入q退出程序 \t\t\t\t\033[5m") print(38 * '-') user_shopping_chiose = input('请输入你要选择的功能') if user_shopping_chiose not in msg_dict: print('请好好输入') continue elif user_shopping_chiose=='q': print('再见') logger_end('程序主界面') break else: logger_start(f'{app_name_dict[user_shopping_chiose]}') msg_dict[user_shopping_chiose]() logger_end(f'{app_name_dict[user_shopping_chiose]}')
我将其中打印日志出现问题的地方运行,其他地方注释掉
if __name__ == '__main__': #logger_start('程序主界面') while true: print("\033[0;31;44m\t\t杨大爷超市欢迎您\t\t\t\t\033[5m") print("\033[0;30;42m\t\t输入0进入注册界面\t\t\t\033[5m") print("\033[0;30;42m\t\t输入1进入登入界面\t\t\t\033[5m") print("\033[0;30;42m\t\t输入2进入充值界面\t\t\t\033[5m") print("\033[0;30;42m\t\t输入3进入余额查询界面\t\t\033[5m") print("\033[0;30;42m\t\t输入4进入购物界面\t\t\t\033[5m") print("\033[0;30;42m\t\t输入5进入解冻界面\t\t\t\033[5m") print("\033[0;30;42m\t\t输入q退出程序 \t\t\t\t\033[5m") print(38 * '-') user_shopping_chiose = input('请输入你要选择的功能') if user_shopping_chiose not in msg_dict: print('请好好输入') continue elif user_shopping_chiose=='q': print('再见') logger_end('程序主界面') break else: logger_start(f'{app_name_dict[user_shopping_chiose]}') msg_dict[user_shopping_chiose]() #logger_end(f'{app_name_dict[user_shopping_chiose]}')
生成的日志
top_up程序启动时间:2019-06-12 17:37:53 #运行一次top_up功能 top_up程序启动时间:2019-06-12 17:37:55 #运行两次top_up功能 top_up程序启动时间:2019-06-12 17:37:55 top_up程序启动时间:2019-06-12 17:37:57 #运行三次top_up功能 top_up程序启动时间:2019-06-12 17:37:57 top_up程序启动时间:2019-06-12 17:37:57 top_up程序启动时间:2019-06-12 17:37:58 #运行四次top_up功能 top_up程序启动时间:2019-06-12 17:37:58 top_up程序启动时间:2019-06-12 17:37:58 top_up程序启动时间:2019-06-12 17:37:58
我们发现他运行后内侧应该还存在日志相关函数,我们这时候看看原来的函数
logger.py
def logger_start(app): logger_login = logging.getlogger('start') fli_show = logging.filehandler('app.log') logger_format = logging.formatter('%(message)s程序启动时间:%(asctime)s', datefmt='%y-%m-%d %x' ) fli_show.setformatter(logger_format) logger_login.addhandler(fli_show) logger_login.setlevel(10) logger_login.info(app) #这时候我又三种想法, #第一种把函数return出来,每次赋予不同的变量名,这里可以用时间生成函数来进行保证每次函数名不一样 #第二种找可能会出现相同地方'logger_login'这个名字 #第三种找可能会出现相同地方logging.getlogger('start')中('start')这个名字
我选择最容易修改的第三种进行修改
import logging from data_time import data_time def logger_login(user): logger_login = logging.getlogger(data_time()) #这是我自定义的一个函数返回值是当前时间每次都会不同 fli_show = logging.filehandler('user_login.log') logger_format = logging.formatter('登入时间:%(asctime)s %(levelname)s-用户:%(message)s', datefmt='%y-%m-%d %x' ) fli_show.setformatter(logger_format) logger_login.addhandler(fli_show) logger_login.setlevel(10) logger_login.info(user) def logger_exit(user): logger_login = logging.getlogger(data_time()) fli_show = logging.filehandler('user_login.log') logger_format = logging.formatter('退出时间:%(asctime)s %(levelname)s-用户:%(message)s', datefmt='%y-%m-%d %x' ) fli_show.setformatter(logger_format) logger_login.addhandler(fli_show) logger_login.setlevel(10) logger_login.info(user) def logger_start(app): logger_login = logging.getlogger(data_time()) fli_show = logging.filehandler('app.log') logger_format = logging.formatter('%(message)s程序启动时间:%(asctime)s', datefmt='%y-%m-%d %x' ) fli_show.setformatter(logger_format) logger_login.addhandler(fli_show) logger_login.setlevel(10) logger_login.info(app) def logger_end(app): logger_login = logging.getlogger(data_time()) fli_show = logging.filehandler('app.log') logger_format = logging.formatter('%(message)s程序关闭时间:%(asctime)s', datefmt='%y-%m-%d %x' ) fli_show.setformatter(logger_format) logger_login.addhandler(fli_show) logger_login.setlevel(10) logger_login.info(app) def logger_shopping(user,car): logger_login = logging.getlogger(data_time()) fli_show = logging.filehandler('user_shopping.log') logger_format = logging.formatter('%(asctime)s %(levelname)s-%(message)s', datefmt='%y-%m-%d %x' ) fli_show.setformatter(logger_format) logger_login.addhandler(fli_show) logger_login.setlevel(10) logger_login.info(user,car)
最后呢解决了