def do_start(self):
     if not self.log:
         self.log = RotatingFile(self.logfile,
             maxBytes=self.logfile_maxbytes, 
             backupCount=self.logfile_backups)
         
     if self.is_ok():
         msg = self.name + ' has already been started'
     else:
         self.log.info('start '+self.name)
         n = 0
         while n < self.startretries:
             self.process = Popen(self.command, stdout=self.log, stderr=self.log, shell=True, cwd=self.cwd)
             gevent.sleep(self.starting_time)
             if self.process.poll() is not None:
                 #error
                 self.log.info('start '+self.name+' failed!, times=%d'%n)
                 n += 1
             else:
                 self.start_time = datetime.datetime.now()
                 break
         #if stopped then status is Fatal
         if n == self.startretries:
             self.stop = FATAL
             msg = self.name + ' started failed'
         else:
             self.stop = RUNNING
             msg = self.name + ' started'
     return msg
    def _getLogger(self):
        from logfile import RotatingFile

        logger = RotatingFile(
            os.path.join(self.startpath,
                         self.ini.server.get('log_to', 'pywatcher.log')),
            maxBytes=self.ini.server.get('logfile_maxbytes', 50 * 1024 * 1024),
            backupCount=self.ini.server.get('logfile_backups', 10))

        return logger