Trace function with automatic source code location reporting

Jürgen Hermann jh at
Wed Feb 7 16:32:55 EST 2001


The following is the core of a tracing function, is there any less obscure
way to get the location of the caller?

def trace(*args):
        raise RuntimeError
    except RuntimeError:
        import sys, traceback, string
        caller = sys.exc_info()[2].tb_frame.f_back
        print "%s [%d]: %s" % (caller.f_code.co_filename, caller.f_lineno,
string.join(map(str, args)))
        del caller

trace("first call", 1)

trace("second call", 2.0)

def func():
    trace("third call", 1+2)


Bye, Jürgen

More information about the Python-list mailing list