async_logger.py 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. from .levels import levels
  2. from .handler import handler
  3. from .logger import logger
  4. class async_logger(logger):
  5. """
  6. That is logger, which use async methods to save data into handles.
  7. Methods
  8. -------
  9. async info(content, *args, **kwargs)
  10. That log info level message.
  11. async warning(content, *args, **kwargs)
  12. """
  13. async def info(self, content: str, *args, **kwargs) -> None:
  14. await self.log(levels.info, content, *args, **kwargs)
  15. async def warning(self, content: str, *args, **kwargs) -> None:
  16. await self.log(levels.warning, content, *args, **kwargs)
  17. async def error(self, content: str, *args, **kwargs) -> None:
  18. await self.log(levels.error, content, *args, **kwargs)
  19. async def critical(self, content: str, *args, **kwargs) -> None:
  20. await self.log(levels.critical, content, *args, **kwargs)
  21. async def log(self, level: levels, content: str, *args, **kwargs) -> None:
  22. await self._write_to_all(
  23. self._get_message(level, content, *args, **kwargs)
  24. )
  25. async def _write_to_all(self, content: str) -> None:
  26. for handler in self._get_handlers():
  27. await handler.adding(content)