Use the traceback module:

def log_exception():
    """This function will log the current exception's traceback
       to logfile
    """
    import traceback
    f = open("logfile", 'a')
    traceback.print_exc(32, f)
    f.close()

def my_func():
    raise Exception

def wrapper():
    try:
        my_func()
    except Exception, e:
        log_exception()
        raise e


On Jun 21, 11:54 pm, Samuel <[EMAIL PROTECTED]> wrote:
> Hi,
>
> I am trying to wrap a function that throws an exeption in such a way
> that the stacktrace is logged into a file and the exception is
> forwarded after that. For example:
>
> -------------------
> def my_func():
>     raise Exception("hello")
>
> def wrapper():
>     try:
>         my_func()
>     except Exception, e:
>         f = open("logfile", 'a')
>         f.write(e.stacktrace())
>         raise e
>
> wrapper() # should throw the exception with a stacktrace showing
> my_func()
> -------------------
>
> Any idea if and how this can be done?
>
> -Samuel


-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to