专栏首页python3python调试代码

python调试代码

我在看一些开源的python项目时,需要知道各个类各个函数之间的调用关系才能看懂代码,因此我写了个方法来跟踪代码的调用过程

导入  系统  
从  时间  导入  ctime  
is_log = True 
 
def log_msg (msg,self = None ,debug_file_name = '/tmp/trace.log'):   
        如果  is_log == False:  
                返回 
        尝试:  
                引发  异常  
        除了:  
                f = sys.exc_info()[ 2 ] .tb_frame.f_back  
                fp =打开(debug_file_name,  'a')  
                如果 self 为None:     
                    fp.write('[' + ctime()+ '] <' + f.f_code.co_name + '>' + str(f.f_lineno)+ ':')  
                其他:  
                    fp.write('[' + ctime()+ '] <' + self .__ class __.__ name __ + '。' + f.f_code.co_name + '>' + str(f.f_lineno)+ ':')  
                fp.write(str(msg)+ '\ n')  
                fp.close() 

大家可以用这个调试方法进行跟踪调试

用法如下:

原型是:log_msg(msg,self=None,debug_file_name='/tmp/swift.log')

第一个参数是输出信息,

第二个参数是所在类,可省略,在类里使用的话填self即可。

第三个参数是输出的日志文件,默认为/tmp/swift.log

from swift.common.debuglog import log_msg

log_msg('start')

log_msg('start',self)

log_msg('start',self,'/tmp/abc.log')

输出内容:包括类名,函数名,行数,时间,输出信息

[Thu Jul 7 17:46:15 2011]<__init__>52:start

[Thu Jul 7 17:51:54 2011]<__init__>52:start

[Thu Jul 7 17:52:24 2011]<Swauth.__init__>52:start

[Thu Jul 7 17:57:18 2011]<Swauth.__init__>52:start

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • python中time.time()和

    time.time()返回的是一个浮点数,以秒为单位,time.strftime后可以自定义格式,如time.strftime('%Y-%m-%d %H:%M:...

    py3study
  • Python HTTP POST方法一例

    create project: multimech-newproject my_project

    py3study
  • 十八问,认识Python序列

    序列是Python中的重要数据结构,序列包括字符串,列表,元组。 大部分读者朋友学习Python的时候都会找本书或者资料从头看到尾,这次我们换一个思路,问答式的...

    py3study
  • Linux(CentOS 7)环境下安装MySQL

    在CentOS中默认安装有MariaDB,但是我们需要的是MySQL,安装MySQL可以覆盖MariaDB

    海向
  • 找到最完美Web开发程序员的5个技巧

    找到最完美Web开发程序员的5个技巧 如果你想要找个自由开发人员协作开发项目,那么问题来了,该如何找到一个完美的开发人员呢?这是一个艰巨的任务。之所以用艰巨这个...

    用户1289394
  • 从零开始用Python搭建超级简单的点击率预估模型

    本篇是一个基础机器学习入门篇文章,帮助我们熟悉机器学习中的神经网络结构与使用。 日常中习惯于使用Python各种成熟的机器学习工具包,例如sklearn、Ten...

    用户1332428
  • ubuntu下安装php扩展

    参考原文地址:http://www.php.cn/php-weizijiaocheng-341528.html

    lin_zone
  • 【摄像头与成像】摄像头是如何拍出照片的,你知道吗?

    本期主要对数字成像系统进行概述总结,行文主要分为:数字成像系统组成、摄像头关键部位概述、ISP概述、关于摄像头相关的技术指标概述以及总结。现在互联网资源比较丰富...

    用户1508658
  • 2019年主动学习有哪些进展?答案在这三篇论文里

    目前推广应用的机器学习方法或模型主要解决分类问题,即给定一组数据(文本、图像、视频等),判断数据类别或将同类数据归类等,训练过程依赖于已标注类别的训练数据集。在...

    机器之心
  • iOS页面切换的几种方式

    4.UINavigationController实现多层画面跳转,在导航控制器中,载入有层级关系的界面

    用户3004328

扫码关注云+社区

领取腾讯云代金券