关于昨天程序出差我找bug的过程记录

昨天才程序

https://www.cnblogs.com/pythonywy/p/11006273.html

├── 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)

最后呢解决了

最新文章

  1. Java基础学习(四)
  2. uva 10801(最短路)
  3. YII2的增删改查
  4. 嵌入式 busybox自带的tftp、telnet、ftp服务器
  5. [Everyday Mathematics]20150115
  6. homework-06&homework-09
  7. Myeclipse在启动Tomcat服务器的时候总是进入debug视图的解决方法
  8. MySql命令——函数
  9. JavaScript的基准测试
  10. VSFTP服务——实验
  11. 201521123117 《Java程序设计》第7周学习总结
  12. 从输入 URL 到页面加载完成的过程中都发生了什么
  13. html点小图看大图最快捷的方法
  14. XYC2016上半年工作笔记整理
  15. Deepin linux Compass.app安装
  16. sql server中嵌套事务*
  17. thinkphp5图片上传接口
  18. SharePoint2007使用WebPart加载UserControl
  19. Go基础系列:空接口
  20. Prism框架研究(二)

热门文章

  1. 在Azure中搭建Ghost博客并绑定自定义域名和HTTPS
  2. CPU的最小执行单位是线程,协程不需要qt支持...直接用现成的协程库就行了
  3. delphi中pos和Ansipos函数的区别
  4. 分布式自增ID算法snowflake (Java版)
  5. 阿里云CDN+OSS完成图片加速
  6. 程序代写, CS代写, 代码代写, CS编程代写, java代写, python代写, c++/c代写, R代写, 算法代写, web代写
  7. JVM检测&工具
  8. 如何有效预防XSS?这几招管用!!!
  9. 《Spring Cloud》学习(二) 负载均衡!
  10. 用arduino制作具有无限数据传输功能的气象站