__init__.py 706 B

123456789101112131415161718192021222324
  1. """Keep application logging used by all test entrypoints in temporary storage."""
  2. import atexit
  3. import logging
  4. import os
  5. import sys
  6. import tempfile
  7. _logs = tempfile.TemporaryDirectory(prefix='gcepic-test-logs-')
  8. os.environ['LOG_DIR'] = _logs.name
  9. os.environ['LOG_TO_CONSOLE'] = 'false'
  10. if 'app.config' in sys.modules:
  11. sys.modules['app.config'].settings.LOG_DIR = _logs.name
  12. sys.modules['app.config'].settings.LOG_TO_CONSOLE = False
  13. def _cleanup_logs():
  14. for handler in list(logging.getLogger().handlers):
  15. if getattr(handler, '_gc_handler', False):
  16. logging.getLogger().removeHandler(handler)
  17. handler.close()
  18. _logs.cleanup()
  19. atexit.register(_cleanup_logs)