'Rotate the file and create a new one.
If it\'s not possible to open new logfile, this will fail silently,
and continue logging to old logfile.'

def rotate(self):

    if (not (os.access(self.directory, os.W_OK) and os.access(self.path, os.W_OK))):
        return
    logs = self.listLogs()
    logs.reverse()
    for i in logs:
        if ((self.maxRotatedFiles is not None) and (i >= self.maxRotatedFiles)):
            os.remove(('%s.%d' % (self.path, i)))
        else:
            os.rename(('%s.%d' % (self.path, i)), ('%s.%d' % (self.path, (i + 1))))
    self._file.close()
    os.rename(self.path, ('%s.1' % self.path))
    self._openFile()
