log_timer.py 876 B

123456789101112131415161718192021222324252627282930313233
  1. import datetime
  2. import logging
  3. from ray.autoscaler._private.cli_logger import cli_logger
  4. logger = logging.getLogger(__name__)
  5. class LogTimer:
  6. def __init__(self, message, show_status=False):
  7. self._message = message
  8. self._show_status = show_status
  9. def __enter__(self):
  10. self._start_time = datetime.datetime.utcnow()
  11. def __exit__(self, *error_vals):
  12. if cli_logger.log_style != "record":
  13. return
  14. td = datetime.datetime.utcnow() - self._start_time
  15. status = ""
  16. if self._show_status:
  17. status = "failed" if any(error_vals) else "succeeded"
  18. cli_logger.print(
  19. " ".join(
  20. [
  21. self._message,
  22. status,
  23. "[LogTimer={:.0f}ms]".format(td.total_seconds() * 1000),
  24. ]
  25. )
  26. )