logger.py 1.2KB

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