docs: def log(self, level, msg):
          """
          Logs the inputed message with the given level.
          
          :param      level | <int> | logging level value
                      msg   | <unicode>
          
          :return     <bool> success
          """
          if self.isDestroyed():
              return
          
          locker = QtCore.QMutexLocker(self._mutex)
          try:
              msg = projex.text.nativestring(msg)
              self.moveCursor(QtGui.QTextCursor.End)
              self.setCurrentMode(level)
              if self.textCursor().block().text():
                  self.insertPlainText('\n')
              self.insertPlainText(msg.lstrip('\n\r'))
              self.scrollToEnd()
          except RuntimeError:
              return
          
          if not self.signalsBlocked():
              self.messageLogged.emit(level, msg)
          
          return True