      def validate(self):
          """ Check that the selected type is valid for
              selected task and job """
          if self.job == "missing-frames" and self.output == "move":
              print("WARNING: missing_frames was selected with move output, but "
                    "there will be nothing to move. "
                    "Defaulting to output: console")
              self.output = "console"
          elif self.type == "faces" and self.job not in ("multi-faces",
                                                         "leftover-faces"):
              print("WARNING: The selected folder is not valid. "
                    "Only folder set with '-fc' is supported for "
 
</s> remove             print("WARNING: The selected folder is not valid. "
                  "Only folder set with '-fc' is supported for "
                  "'multi-faces' and 'leftover-faces'")
 </s> add             logger.warning("The selected folder is not valid. Only folder set with '-fc' is "
                           "supported for 'multi-faces' and 'leftover-faces'") </s> remove                 print("Warning: no reference video was supplied, even though "
                      "one may be used with the chosen action. If this is "
                      "intentional then ignore this warning.", file=sys.stderr)
 </s> add                 logger.warning("Warning: no reference video was supplied, even though "
                               "one may be used with the chosen action. If this is "
                               "intentional then ignore this warning.") </s> remove             print("{} is not a supported serializer. "
                  "Exiting".format(file_ext))
 </s> add             logger.error("'%s' is not a supported serializer. Exiting", file_ext) </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")
            logger.warning("Missing_frames was selected with move output, but there will "
                           "be nothing to move. Defaulting to output: console")
      def validate(self):
          """ Check that the selected type is valid for
              selected task and job """
          if self.job == "missing-frames" and self.output == "move":
            logger.warning("Missing_frames was selected with move output, but there will "
                           "be nothing to move. Defaulting to output: console")
            logger.warning("Missing_frames was selected with move output, but there will "
                           "be nothing to move. Defaulting to output: console")
            logger.warning("Missing_frames was selected with move output, but there will "
                           "be nothing to move. Defaulting to output: console")
              self.output = "console"
          elif self.type == "faces" and self.job not in ("multi-faces",
                                                         "leftover-faces"):
              print("WARNING: The selected folder is not valid. "
                    "Only folder set with '-fc' is supported for "
keep keep keep keep 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