              positions, so generate a warning and exit """
          if any(alignment.get("r", None)
                 for val in self.alignments.data.values()
                 for alignment in val):
              print("WARNING: There are rotated frames in the alignments "
                    "file.\n\t Position of faces will not be correctly "
                    "calculated for these frames.\n\t You should run rotation "
                    "tool to update the file prior to running sort:\n\t "
                    "'python tools.py alignments -j rotate -a "
                    "<alignments_file> -fr <frames_folder>'")
              exit(0)
  
      def reindex_faces(self):
          """ Re-Index the faces """
          reindexed = 0
 
</s> remove         print("\nDone! To re-extract faces run:\n    python tools.py "
              "alignments -j extract -a {} -fr <path_to_frames_dir> -fc "
              "<output_folder>\n".format(self.arguments.alignments_file))
 </s> add         logger.info("Done! To re-extract faces run: python tools.py "
                    "alignments -j extract -a %s -fr <path_to_frames_dir> -fc "
                    "<output_folder>", self.arguments.alignments_file) </s> remove             print("Aligned directory not found. All faces listed in the "
                  "alignments file will be converted")
 </s> add             logger.warning("Aligned directory not found. All faces listed in the "
                           "alignments file will be converted") </s> remove             print("Aligned directory not specified. All faces listed in the "
                  "alignments file will be converted")
 </s> add             logger.info("Aligned directory not specified. All faces listed in the "
                        "alignments file will be converted") </s> remove             print("WARNING: missing_frames was selected with move output, but "
                  "there will be nothing to move. "
                  "Defaulting to output: console")
 </s> add             logger.warning("Missing_frames was selected with move output, but there will "
                           "be nothing to move. Defaulting to output: console")
            logger.error("There are rotated frames in the alignments "
                         "file. Position of faces will not be correctly "
                         "calculated for these frames. You should run rotation "
                         "tool to update the file prior to running sort: "
                         "'python tools.py alignments -j rotate -a "
                         "<alignments_file> -fr <frames_folder>'")
              positions, so generate a warning and exit """
          if any(alignment.get("r", None)
                 for val in self.alignments.data.values()
                 for alignment in val):
            logger.error("There are rotated frames in the alignments "
                         "file. Position of faces will not be correctly "
                         "calculated for these frames. You should run rotation "
                         "tool to update the file prior to running sort: "
                         "'python tools.py alignments -j rotate -a "
                         "<alignments_file> -fr <frames_folder>'")
            logger.error("There are rotated frames in the alignments "
                         "file. Position of faces will not be correctly "
                         "calculated for these frames. You should run rotation "
                         "tool to update the file prior to running sort: "
                         "'python tools.py alignments -j rotate -a "
                         "<alignments_file> -fr <frames_folder>'")
            logger.error("There are rotated frames in the alignments "
                         "file. Position of faces will not be correctly "
                         "calculated for these frames. You should run rotation "
                         "tool to update the file prior to running sort: "
                         "'python tools.py alignments -j rotate -a "
                         "<alignments_file> -fr <frames_folder>'")
            logger.error("There are rotated frames in the alignments "
                         "file. Position of faces will not be correctly "
                         "calculated for these frames. You should run rotation "
                         "tool to update the file prior to running sort: "
                         "'python tools.py alignments -j rotate -a "
                         "<alignments_file> -fr <frames_folder>'")
            logger.error("There are rotated frames in the alignments "
                         "file. Position of faces will not be correctly "
                         "calculated for these frames. You should run rotation "
                         "tool to update the file prior to running sort: "
                         "'python tools.py alignments -j rotate -a "
                         "<alignments_file> -fr <frames_folder>'")
            logger.error("There are rotated frames in the alignments "
                         "file. Position of faces will not be correctly "
                         "calculated for these frames. You should run rotation "
                         "tool to update the file prior to running sort: "
                         "'python tools.py alignments -j rotate -a "
                         "<alignments_file> -fr <frames_folder>'")
              exit(0)
  
      def reindex_faces(self):
          """ Re-Index the faces """
          reindexed = 0
keep keep keep keep 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 
tools/lib_alignments/jobs.py