docs: def _write_log(self, log_type, log_time, message):
          """ Private method to abstract log writing for different types of logs """
          timestamp = datetime.datetime.now().strftime(" %Y-%m-%d %H:%M:%S")
          log_entry = "[{}{}] {}".format(log_type, timestamp if log_time else "", message)
          if self._logger and callable(getattr(self._logger, self._logger_methods[log_type], None)):
              # Check for log handler (sends message only if _logger_no_prefix is True)
              getattr(
                  self._logger,
                  self._logger_methods[log_type],
                  None
                  )(message if self._logger_no_prefix else log_entry)
          elif self._log_file:
              # Otherwise write to file, if a file has been specified
              with open(self._log_file, 'a') as logfile:
                  try:
                      logfile.write(unicode(log_entry + "\n"))
                  except NameError: # `unicode` only works in Python 2
                      logfile.write(log_entry + "\n")
          else:
              # Otherwise, print to STDOUT
              print(log_entry)