1 #=======================================================================
3 this module defines the logger aspects.
6 #-----------------------------------------------------------------------
8 __version__
= '''0.1.03'''
9 __sub_version__
= '''20040212153738'''
10 __copyright__
= '''(c) Alex A. Naanou 2003'''
14 #-----------------------------------------------------------------------
22 #-----------------------------------------------------------------------
24 # make the aspect pre-condirioned
26 # make the aspect post-conditioned.
30 #--------------------------------------------------------LoggerAspect---
31 # TODO make this thread-safe...
33 class LoggerAspect(aspect
.Aspect
):
36 def __init__(self
, file=None, mode
=LOG_POST
, format
=None, verbosity
=1):
41 self
.verbosity
= verbosity
43 self
.format
= '[%(time)s] [%(mode)s] --'
46 # this is the part that is not thread safe...
47 def out(self
, *pargs
, **nargs
):
49 this is the output method...
51 # do dynamic output file linking...
59 def pre(self
, obj
, meth
, *pargs
, **nargs
):
67 self
.out(self
.format
% {'time':time
.strftime('%Y%m%d%H%M%S'), 'mode': 'pre'},\
70 self
.out(self
.format
% {'time':time
.strftime('%Y%m%d%H%M%S'), 'mode': 'pre'},\
71 meth
.__name
__, *pargs
, **nargs
)
72 def post(self
, obj
, meth
, ret
, rexcept
, *pargs
, **nargs
):
75 if self
.mode
&LOG_POST
:
80 self
.out(self
.format
% {'time':time
.strftime('%Y%m%d%H%M%S'), 'mode': 'post'},\
81 meth
.__name
__, ret
, rexcept
)
83 self
.out(self
.format
% {'time':time
.strftime('%Y%m%d%H%M%S'), 'mode': 'post'},\
84 meth
.__name
__, ret
, rexcept
, *pargs
, **nargs
)
88 #=======================================================================
89 # vim:set ts=4 sw=4 nowrap :