python日志功能实现-自动获取程序运行时信息

通过python的inspect模块,我们可以获取程序的运行时栈。一个python的运行时栈是一个六元组:(frame对象, 文件名, 当前行号, 函数名, 保存相关源代码行的列表, 当前行在源代码列表中的位置)。

栈中第一个元素代表当前执行的位置信息,最后一个表示最外层的执行信息。

如:


 1 import inspect
2
3 class Foo:
4 def __init__(self):
5 pass
6 def say(self):
7 print inspect.stack()[1][1]
8 print inspect.stack()[1][2]
9 print inspect.stack()[1][3]
10
11 def hello(self):
12 self.say()
13
14 f = Foo()
15 f.hello()

输出信息为:

test.py

11

hello

时间: 2024-10-07 04:24:23

python日志功能实现-自动获取程序运行时信息的相关文章

C# 获取程序运行时路径

?  前言 开发中,很多时候都需要获取程序运行时路径,比如:反射.文件操作等..NET Framework 已经封装了这些功能,可以很方便的使用. 1.   可使用类 1.   System.AppDomain,程序集:mscorlib.dll. 2.   System.Environment,程序集:mscorlib.dll. 3.   System.IO.Directory,程序集:mscorlib.dll. 4.   System.Reflection.Assembly,程序集:mscor

获取java程序运行时内存信息

由于最近想自己动手测试一下String和StringBuffer的效率问题,需要获取程序运行时的内存占中信息,于是上网查了一下,根据查到的资料写了个程序,发现结果有问题,才发现查到的资料是错误的.所以在这里跟大家分享一下获取内存占用的正确方法 错误的方法 //程序开始时:(先调用一下垃圾回收,但是不一定立即执行) Runtime.getRuntime().gc(); long initm=Runtime.getRuntime().freeMemory(); //程序结束时: Runtime.ge

unicode string和ansi string的转换函数及获取程序运行路径的代码

#pragma once#include <string> namespace stds { class tool { public: std::string ws2s(const std::wstring& ws) { std::string curLocale = setlocale(LC_ALL, NULL); // curLocale = "C"; setlocale(LC_ALL, "chs"); const wchar_t* _Sou

WPF获取应用程序路径方法,获取程序运行路径方法

试了好多种方法,在WPF中获取工程的路径都没能解决掉,暂时用的绝对路径"D://WPF.....",但是发布的时候出现问题了,放到别的电脑上找不到路径,又开始了地毯式搜索,终于解决了,跟遇到此类问题的朋友分享下解决办法,如下: AppDomain.CurrentDomain.BaseDirectory +文件名即可,简单吧? //获取启动了应用程序的可执行文件的路径,不包括可执行文件的名称. string str5=Application.StartupPath; //可获得当前执行的

程序运行时三种内存分配策略

按照编译原理的观点,程序运行时的内存分配有三种策略,分别是静态的,栈式的,和堆式的. 静态存储分配是指在编译时就能确定每个数据目标在运行时刻的存储空间需求,因而在编译时就可以给他们分配固定的内存空间.这种分配策略要求程序代码中不允许有可变数据结构(比如可变数组)的存在,也不允许有嵌套或者递归的结构出现,因为它们都会导致编译程序无法计算准确的存储空间需求. 栈式存储分配也可称为动态存储分配,是由一个类似于堆栈的运行栈来实现的.和静态存储分配相反,在栈式存储方案中,程序对数据区的需求在编译时是完全未

Environment类,获取程序所在机器信息

一.属性 CommandLine  获取该进程的命令行.CurrentDirectory 获取或设置当前工作目录的完全限定路径.ExitCode 获取或设置进程的退出代码.HasShutdownStarted 获取一个值,该值指示公共语言运行时 (CLR) 是否正在关闭.Is64BitOperatingSystem  确定当前操作系统是否为 64 位操作系统.Is64BitProcess 确定当前进程是否为 64 位进程.MachineName  获取此本地计算机的 NetBIOS 名称.New

程序运行时的内存分配情况

以下内容来自<C++编程实战宝典> 变量和函数占用的内存是系统在程序运行时为程序分配的,但并不是所有的变量和函数都被分配在同一块内存区域中.对于一个C++程序来说,系统一般采用3种方式为程序分配内存,下面将分别介绍这3种方式. (1)从静态存储区域分配 这部分内存在程序编译的时候就已经分配好,并且这块内存在程序的整个运行期间都存在.例如在函数外定义的全局变量,以及在创建时使用static修饰符的变量.在该区域存储的内容一般是全局变量,其中存储在数据段中的全局变量通常已经被初始化. (2)在栈上

VC项目程序运行时设置指定目录读取Dll

方法一: 选择当前工程,右击"Properties" -> "Configuration Properties" -> "Debugging",在"Working Directory"设置dll的路径就可以了 方法二:设置项目的环境变量 方法三: CString strDllPath = GetExePath() + _T("System"); SetDllDirectory(strDllPat

c/c++编译时,指定程序运行时查找的动态链接库路径

http://blog.csdn.net/tsxw24/article/details/10220735 c/c++编译时,指定程序运行时查找的动态链接库路径 分类: c/c++ linux 2013-08-23 14:04 1117人阅读 评论(0) 收藏 举报 [plain] view plaincopy $ g++ -Wl,-rpath,/usr/local/lib/ -oevh libevent_http.cpp -levent -Wl,-rpath,  用于指定程序运行时查找动态链接库