| 28 | |
| 29 | |
| 30 | class Printer(object): |
| 31 | # noinspection PyShadowingNames |
| 32 | def __init__(self, logger=None, handler=None, formatter=None): |
| 33 | if logger is None: |
| 34 | logger = logging.getLogger('pyasn1') |
| 35 | |
| 36 | logger.setLevel(logging.DEBUG) |
| 37 | |
| 38 | if handler is None: |
| 39 | handler = logging.StreamHandler() |
| 40 | |
| 41 | if formatter is None: |
| 42 | formatter = logging.Formatter('%(asctime)s %(name)s: %(message)s') |
| 43 | |
| 44 | handler.setFormatter(formatter) |
| 45 | handler.setLevel(logging.DEBUG) |
| 46 | logger.addHandler(handler) |
| 47 | |
| 48 | self.__logger = logger |
| 49 | |
| 50 | def __call__(self, msg): |
| 51 | self.__logger.debug(msg) |
| 52 | |
| 53 | def __str__(self): |
| 54 | return '<python logging>' |
| 55 | |
| 56 | |
| 57 | class Debug(object): |