util/ProcessLogger.py
changeset 1744 69dfdb26f600
parent 1742 92932cd370a4
child 1746 45d6f5fba016
equal deleted inserted replaced
1743:c3c3d1318130 1744:69dfdb26f600
    69             self.finished = True
    69             self.finished = True
    70             self.endcallback(self.Proc.pid, err)
    70             self.endcallback(self.Proc.pid, err)
    71 
    71 
    72 
    72 
    73 class ProcessLogger:
    73 class ProcessLogger:
    74     def __init__(self, logger, Command, finish_callback = None,
    74     def __init__(self, logger, Command, finish_callback=None,
    75                  no_stdout = False, no_stderr = False, no_gui = True,
    75                  no_stdout=False, no_stderr=False, no_gui=True,
    76                  timeout = None, outlimit = None, errlimit = None,
    76                  timeout=None, outlimit=None, errlimit=None,
    77                  endlog = None, keyword = None, kill_it = False, cwd = None,
    77                  endlog=None, keyword=None, kill_it=False, cwd=None,
    78                  encoding = None):
    78                  encoding=None):
    79         self.logger = logger
    79         self.logger = logger
    80         if not isinstance(Command, list):
    80         if not isinstance(Command, list):
    81             self.Command_str = Command
    81             self.Command_str = Command
    82             self.Command = []
    82             self.Command = []
    83             for i, word in enumerate(Command.replace("'", '"').split('"')):
    83             for i, word in enumerate(Command.replace("'", '"').split('"')):
   167         if self.errlimit and self.errlen > self.errlimit:
   167         if self.errlimit and self.errlen > self.errlimit:
   168             self.endlog()
   168             self.endlog()
   169 
   169 
   170     def log_the_end(self, ecode, pid):
   170     def log_the_end(self, ecode, pid):
   171         self.logger.write(self.Command_str + "\n")
   171         self.logger.write(self.Command_str + "\n")
   172         self.logger.write_warning(_("exited with status {a1} (pid {a2})\n").format(a1 = str(ecode), a2 = str(pid)))
   172         self.logger.write_warning(_("exited with status {a1} (pid {a2})\n").format(a1=str(ecode), a2=str(pid)))
   173 
   173 
   174     def finish(self, pid, ecode):
   174     def finish(self, pid, ecode):
   175         # avoid running function before start is finished
   175         # avoid running function before start is finished
   176         self.startsem.acquire()
   176         self.startsem.acquire()
   177         if self.timeout:
   177         if self.timeout: