利用sys._getframe()为日志添加文件路劲,函数名和行号

来源:互联网 发布:志华软件 编辑:程序博客网 时间:2024/05/18 01:31

sys._getframe()得到如下对象:

typedef struct _frame {     PyObject_VAR_HEAD     struct _frame *f_back;    /* 调用者的帧 */     PyCodeObject *f_code;     /* 帧对应的字节码对象 */     PyObject *f_builtins;     /* 内置名字空间 */     PyObject *f_globals;      /* 全局名字空间 */     PyObject *f_locals;       /* 本地名字空间 */     PyObject **f_valuestack;  /* 运行时栈底 */     PyObject **f_stacktop;    /* 运行时栈顶 */     ……. }

重新定义如下打印函数:

def zlog(msg):    print '[file:%s] [func:%s] [line:%s] %s' % (sys._getframe().f_back.f_code.co_filename, sys._getframe().f_back.f_code.co_name, sys._getframe().f_back.f_lineno,msg) 

得到如下效果:
这里写图片描述

0 0
原创粉丝点击