logger.py 1.2KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. import logging
  2. class Logger(object):
  3. TPL = '[{cls}] {msg}'
  4. def __init__(self, logger_name):
  5. self._name = logger_name
  6. self._logger = logging.getLogger(self._name)
  7. @classmethod
  8. def _txt(cls, instance_or_class):
  9. if instance_or_class.__class__.__name__ in ('function', 'type'):
  10. return instance_or_class.__name__
  11. else:
  12. return instance_or_class.__class__.__name__
  13. def debug(self, instance_or_class, message):
  14. self._logger.debug(
  15. Logger.TPL.format(cls=self._txt(instance_or_class), msg=message)
  16. )
  17. def error(self, instance_or_class, message, exc_info=0):
  18. self._logger.error(
  19. Logger.TPL.format(
  20. cls=self._txt(instance_or_class),
  21. msg=message,
  22. exc_info=exc_info
  23. )
  24. )
  25. def info(self, instance_or_class, message):
  26. self._logger.info(
  27. Logger.TPL.format(cls=self._txt(instance_or_class), msg=message)
  28. )
  29. def warning(self, instance_or_class, message):
  30. self._logger.warning(
  31. Logger.TPL.format(cls=self._txt(instance_or_class), msg=message)
  32. )
  33. logger = Logger('tracim')