[EMAIL PROTECTED] wrote:

> I wonder if it is possible to change (temporarily) a built-in function
> for logging purposes.
> Let me explain:
> I want to log all the 'open' operations, recording the file to be
> opened, the "mode" (r/w/a...) and (possibly) the module which made the
> call.

import sys
import __builtin__ # note: no plural s

old_open = __builtin__.open

def myopen(*args):
    code = sys._getframe(1).f_code
    print "OPEN", args, "FROM", code.co_name, "IN", code.co_filename
    return old_open(*args)

__builtin__.open = myopen

this only handles file opens that goes via the "open" function, of course.
to handle all opens, including internal operations (e.g. imports), you're
probably better off using an external tool (e.g. strace, filemon, or some-
thing similar).

</F>



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

Reply via email to