mas nejaky napad, ako dosiahnut aby sa to automaticky importovalo do _kazdeho_ skriptu ? ide mi proste o logovanie, ludia vobec nemusia (ani by vlastne nemali) vediet, ze sa nieco taketo deje. musi to byt uplne transparentne.
>-----Pôvodná správa----- >Od: Jan Janech [mailto:[EMAIL PROTECTED] >Komu: Konference PyCZ <[EMAIL PROTECTED]> >Predmet: Re: [python] Logovanie pristupu k suborom > > >azurIt wrote: >> Zdravim, >> >> chcel by som logovat vsetky pristupy k suborom vykonane cez python, da sa to >> nejako ? Pripadne, existuje nejaky rozumny a efektivny sposob ako toto >> dosiahnut ? Log by som si predstavoval nejako takto: >> Datum /cesta/k/skript.py otvoril /ceska/k/suboru >> >> Ide mi o globalne logovanie na urovni interpreteru (teda nie v danom >> skripte). >> >> azur > >To by ti malo stacit prekryt si builtin funkciu open a builtin objekt >file nejakym vlastnym objektom... nie ? > >teda nieco taketo: > >~~~~~~~~~~~~~~~~~~~~~~~~~~~~ filelog.py ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ >import sys >import time > >logfileobj = None >classicfile = file > >class logfile(classicfile): >def __init__(self, filepath, mode): >t = time.strftime('%Y-%m-%d %H:%M:%S') >p = sys._getframe().f_back.f_code.co_filename >l = sys._getframe().f_back.f_lineno >print>>logfileobj, "%s %s(%d) otvoril %s (mod '%s')"%(t, p, l, >filepath, mode) >classicfile.__init__(self, filepath, mode) > >def install(logpath): >global logfileobj >logfileobj = classicfile(logpath, 'wt') >import __builtin__ >__builtin__.file = __builtin__.open = logfile > >__all__ = ['install'] > > >~~~~~~~~~~~~~~~~~~~~~~~~~~~~ test.py ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ >import filelog >filelog.install('log.log') > >file('ahoj', 'w') >file('caw', 'w') >open('ahoj', 'r') > >_______________________________________________ >Python mailing list >[EMAIL PROTECTED] >http://www.py.cz/mailman/listinfo/python _______________________________________________ Python mailing list [EMAIL PROTECTED] http://www.py.cz/mailman/listinfo/python
