          # up to 3-4 minutes, hence high timeout.
          # TODO investigate why this is and fix if possible
          event.wait(300)
          if not event.is_set():
              raise ValueError("Error inititalizing Aligner")
  
          try:
              err = None
              err = out_queue.get(True, 1)
          except QueueEmpty:
              pass
  
          if err:
              if isinstance(err, str):
                  queue_manager.terminate_queues()
                  print(err)
                  exit(1)
              else:
                  queue_manager.get_queue("detect").put(err)
  
      def launch_detector(self):
          """ Launch the face detector """
          out_queue = queue_manager.get_queue("detect")
          kwargs = {"in_queue": queue_manager.get_queue("load"),
 
</s> remove 
        self.process_align.in_process(self.aligner.align, **kwargs)
 </s> add         self.process_align.start() </s> remove                 exception = faces.get("exception", None)
                if exception is not None:
                    queue_manager.terminate_queues()
                    yield faces
                    break
 </s> add                 if isinstance(faces, dict) and faces.get("exception"):
                    pid = faces["exception"][0]
                    t_back = faces["exception"][1].getvalue()
                    err = "Error in child process {}. {}".format(pid, t_back)
                    raise Exception(err) </s> remove             process.in_process(aligner.align, **kwargs)
 </s> add             process = SpawnProcess(aligner.run, **kwargs)
            event = process.event
            process.start()
            raise ValueError("Error initializing Aligner")

        logger.debug("Launched Aligner")
          # up to 3-4 minutes, hence high timeout.
          # TODO investigate why this is and fix if possible
          event.wait(300)
          if not event.is_set():
            raise ValueError("Error initializing Aligner")

        logger.debug("Launched Aligner")
            raise ValueError("Error initializing Aligner")

        logger.debug("Launched Aligner")
            raise ValueError("Error initializing Aligner")

        logger.debug("Launched Aligner")
            raise ValueError("Error initializing Aligner")

        logger.debug("Launched Aligner")
            raise ValueError("Error initializing Aligner")

        logger.debug("Launched Aligner")
            raise ValueError("Error initializing Aligner")

        logger.debug("Launched Aligner")
            raise ValueError("Error initializing Aligner")

        logger.debug("Launched Aligner")
            raise ValueError("Error initializing Aligner")

        logger.debug("Launched Aligner")
            raise ValueError("Error initializing Aligner")

        logger.debug("Launched Aligner")
            raise ValueError("Error initializing Aligner")

        logger.debug("Launched Aligner")
            raise ValueError("Error initializing Aligner")

        logger.debug("Launched Aligner")
            raise ValueError("Error initializing Aligner")

        logger.debug("Launched Aligner")
            raise ValueError("Error initializing Aligner")

        logger.debug("Launched Aligner")
            raise ValueError("Error initializing Aligner")

        logger.debug("Launched Aligner")
            raise ValueError("Error initializing Aligner")

        logger.debug("Launched Aligner")
  
      def launch_detector(self):
          """ Launch the face detector """
          out_queue = queue_manager.get_queue("detect")
          kwargs = {"in_queue": queue_manager.get_queue("load"),
keep keep keep keep replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace keep keep keep keep keep
 Logging (#541)

* Convert prints to logger. Further logging improvements. Tidy  up

* Fix system verbosity. Allow SystemExit

* Fix reload extract bug

* Child Traceback handling

* Safer shutdown procedure

* Add shutdown event to queue manager

* landmarks_as_xy > property. GUI notes + linting. Aligner bugfix

* fix FaceFilter. Enable nFilter when no Filter is supplied

* Fix blurry face filter

* Continue on IO error. Better error handling

* Explicitly print stack trace tocrash log

* Windows Multiprocessing bugfix

* Add git info and conda version to crash log

* Windows/Anaconda mp bugfix

* Logging fixes for training 
scripts/extract.py