12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- __author__ = 'Wander Lairson Costa'
- __all__ = ['methodtrace', 'functiontrace']
- import logging
- import usb._interop as _interop
- def _trace_function_call(logger, fname, *args, **named_args):
- logger.debug(
-
- fname + '(' + \
- ', '.join((str(val) for val in args)) + \
- ', '.join((name + '=' + str(val) for name, val in named_args.items())) + ')'
- )
- def methodtrace(logger):
- def decorator_logging(f):
- def do_trace(*args, **named_args):
-
- if logging.DEBUG >= logger.getEffectiveLevel():
- fn = type(args[0]).__name__ + '.' + f.__name__
- _trace_function_call(logger, fn, *args[1:], **named_args)
- return f(*args, **named_args)
- _interop._update_wrapper(do_trace, f)
- return do_trace
- return decorator_logging
- def functiontrace(logger):
- def decorator_logging(f):
- def do_trace(*args, **named_args):
-
- if logging.DEBUG >= logger.getEffectiveLevel():
- _trace_function_call(logger, f.__name__, *args, **named_args)
- return f(*args, **named_args)
- _interop._update_wrapper(do_trace, f)
- return do_trace
- return decorator_logging
|