def main(db_name): import servicemanager pg_dump = PgDumpCli(db_name) servicemanager.LogInfoMsg("Starting %s backup sequence" % pg_dump.db_name) try: p = Popen(pg_dump(), stderr=PIPE, stdout=PIPE, env=pg_dump.env) out, err = p.communicate(timeout=TIMEOUT) if p.returncode: # error code returned servicemanager.LogWarningMsg( "There was an error during %s backup.\n" "pg_dump response is:\n %s" % (pg_dump.db_name, err.decode("cp866", errors='ignore'))) else: # successfull completion servicemanager.LogInfoMsg("%s backup sequence complete" % pg_dump.db_name) history_manager = BackupHistoryManager(db_name) history_manager() except OSError: # bad command servicemanager.LogErrorMsg("There was an error during %s backup.\n" "pg_dump.exe was not found at %s" % (pg_dump.db_name, pg_dump.pg_dump_dir)) except TimeoutExpired: p.kill() servicemanager.LogErrorMsg("There was an error during %s backup.\n" "Timeout expired" % pg_dump.db_name)
def warning(self, msg: str) -> None: # Log messages go to the Windows APPLICATION log. # noinspection PyUnresolvedReferences s = "{}: {}".format(self.fullname, msg) servicemanager.LogWarningMsg(s) if self.debugging: log.warning(s)
def restart(self): if not self._can_restart(): servicemanager.LogWarningMsg( u"`{0}` reached the limit of restarts ({1} tries during the last {2}s" u" (max authorized: {3})). Not restarting...".format( self._name, len(self._restarts), self._RESTART_TIMEFRAME, self._max_restarts)) self._process.is_enabled = False return try: # Make a new proc instances because multiprocessing # won't let you call .start() twice on the same instance. if self._process.is_alive(): self._process.terminate() # Recreate a new process self._process = self._process.__class__(self._process.config, self._process.hostname, **self._process.options) self._process.start() except WindowsError as e: # pylint: disable=E0602 servicemanager.LogErrorMsg( u"Fail to restart `{process}`: {err}".format( process=self._name, err=e)) self._restarts.append(time.time())
def log(self, level, msg): if level == "error": servicemanager.LogErrorMsg(msg) elif level == "warn": servicemanager.LogWarningMsg(msg) elif level == "notice": servicemanager.LogInfoMsg(msg) else: pass
def log(message: str, msg_type: int = INFO): """Log a message to the Windows Event Log.""" if msg_type == INFO: servicemanager.LogInfoMsg(str(message)) if msg_type == WARN: servicemanager.LogWarningMsg(str(message)) elif msg_type == ERR: servicemanager.LogErrorMsg(str(message)) else: servicemanager.LogMsg(str(message))
def warning(self, msg: str) -> None: """ Write a warning message to the Windows Application log (± to the Python disk log). """ # Log messages go to the Windows APPLICATION log. # noinspection PyUnresolvedReferences s = f"{self.fullname}: {msg}" # noinspection PyUnresolvedReferences servicemanager.LogWarningMsg(s) if self.debugging: log.warning(s)
def updateProject(self, projectid): servicemanager.LogWarningMsg(unicode(projectid)) filters = [["project.Project.id", "is", projectid]] fields = ["time_logs_sum", "est_in_mins"] for eventTimeLog in self.sg.find('Task', filters, fields): self.count = self.count + eventTimeLog['time_logs_sum'] if eventTimeLog['est_in_mins'] is not None: self.estinmins = self.estinmins + eventTimeLog['est_in_mins'] data = {'sg_artisttimelog': self.count / 600} asset = self.sg.update("Project", projectid, data) data = {'sg_total_bid': self.estinmins / 600} asset = self.sg.update("Project", projectid, data)
def emit(self, record): message = self.format(record) level = record.levelno if level >= logging.ERROR: servicemanager.LogErrorMsg(message) elif level >= logging.WARNING: servicemanager.LogWarningMsg(message) else: servicemanager.LogInfoMsg(message)
def log(self, level, message): # Debug messages are logged to a file # our loglevels are 10000 (other), 20000 (debug), .... # logging levels are 10 (debug), 20 (info) # OTHER = logging.NOTSET self.logger.log(level / 1000 - 10, message) if level < INFO or self.serviceLogger is False: # Only information and above will be on event log return if level < WARN: # Info servicemanager.LogInfoMsg(message) elif level < ERROR: # WARN servicemanager.LogWarningMsg(message) else: # Error & Fatal servicemanager.LogErrorMsg(message)
def log(self, level: int, message: str) -> None: # Debug messages are logged to a file # our loglevels are 0 (other), 10000 (debug), .... # logging levels are 10 (debug), 20 (info) # OTHER = logging.NOTSET if self.logger: self.logger.log(int(level / 1000), message) if level < loglevel.ERROR or self.serviceLogger is False: # Only information and above will be on event log return # In fact, we have restricted level in windows event log to ERROR or FATAL # but left the code for just a case in the future... if level < loglevel.WARN: # Info servicemanager.LogInfoMsg(message) elif level < loglevel.ERROR: # WARN servicemanager.LogWarningMsg(message) else: # Error & Fatal servicemanager.LogErrorMsg(message)
def SvcDoRun(self): self.ReportServiceStatus(win32service.SERVICE_START_PENDING) servicemanager.LogInfoMsg("Starting SSH Tunnel Service") plink = self._start_tunnel() self.ReportServiceStatus(win32service.SERVICE_RUNNING) while True: signal = win32event.WaitForSingleObject(self.stop, 3000) if signal == win32event.WAIT_OBJECT_0: #received stop signal servicemanager.LogInfoMsg("Stopping SSH Tunnel Service") if plink.returncode is None: plink.terminate() self.ReportServiceStatus(win32service.SERVICE_STOPPED) return plink.poll() if plink.returncode is not None: servicemanager.LogWarningMsg( "SSH Tunnel failed with plink returncode " + str(plink.returncode)) plink = self._start_tunnel()
def SvcDoRun(self): import servicemanager # Add these two lines and the source will be "PyMyService" win32evtlogutil.AddSourceToRegistry(self._svc_name_, servicemanager.__file__) servicemanager.Initialize(self._svc_name_, servicemanager.__file__) # servicemanager.LogMsg(servicemanager.EVENTLOG_INFORMATION_TYPE, servicemanager.PYS_SERVICE_STARTED, (self._svc_name_, "")) servicemanager.LogInfoMsg("Info") # Event is 255 servicemanager.LogErrorMsg("Error") # Event is 255 servicemanager.LogWarningMsg("Warn") # Event is 255 # or servicemanager.LogMsg(servicemanager.EVENTLOG_INFORMATION_TYPE, 0xF000, ("Info", )) # Event is 61440 servicemanager.LogMsg(servicemanager.EVENTLOG_ERROR_TYPE, 0xF001, ("Error", )) # Event is 61441 servicemanager.LogMsg(servicemanager.EVENTLOG_WARNING_TYPE, 0xF002, ("Warn", )) # Event is 61442
def warn(message: str): servicemanager.LogWarningMsg(str(message))
def warning(self, s): servicemanager.LogWarningMsg(s) logging.warning(s)
def log_warn(self, message): Logger.log_warn(self, message) servicemanager.LogWarningMsg(message)
def warning(self, msg): import servicemanager servicemanager.LogWarningMsg(str(msg))
def warn(self, s): servicemanager.LogWarningMsg(s)
myProp.writeProps(_PATH + "cfg" + os.sep + "cfg.properties", '\ncode', app.result) _prop = myProp.readProps(_PATH + "cfg" + os.sep + "cfg.properties") root.destroy() else: nemesys.info('appresult = ""') #root.destroy() nemesys.error('Exit: activation code not provided') myProp.writeProps(_PATH + "cfg" + os.sep + "cfg.properties", '\nregistered', 'nok') _prop = myProp.readProps(_PATH + "cfg" + os.sep + "cfg.properties") et = ErrorThread('code') et.start() raise Exception('Activation Code not provided') except Exception as e: servicemanager.LogWarningMsg('Exception at activation code: ' + str(e)) sys.exit(1) try: if 'registered' not in _prop: nemesys.info('download del file di configurazione') #scarico il file di configurazione getActivationFile(_prop, _PATH) else: status = str(_prop['registered']) if status == 'ok': # Allora posso continuare lo start del servizio nemesys.info('Configuration file already downloaded') elif status == 'nok': # Allora il servizio non puo partire nemesys.info(