import simplejson import logging class ExceptionLogger: logger = None error_data = None job_result = None def __init__(self): self.logger = logging.getLogger("AuraEngine") # ------------------------------------------------------------------------------------------ # def __get_error__(self, job, errornumber, data): """ Privat: Ermittelt Fehlermeldung, Job-Name (Klassenmethode) und Fehlercode für den Job aus error/controller_error.js @type errornumber: string @param errornumber: Die interne Fehlernummer der aufrufenden Methode """ if data is None: data = {} if type(data) == type(str()): data = simplejson.loads(data) has_data = isinstance(data, (dict)) and len(data) > 0 if job in self.error_data: err_msg = self.error_data[job][errornumber] err_id = self.error_data[job]['id'] + str(errornumber) if has_data: for key in data.keys(): err_msg = err_msg.replace('::' + key + '::', str(data[key])) data['message'] = err_msg data['job'] = job data['code'] = err_id return data # ------------------------------------------------------------------------------------------ # def success(self, job, data=None, errnum='00', value=''): """ Erfolgsmeldung loggen @type errnum: string @param errnum: Errornummer der aufrufenden Funktion @type value: string @param value: Optionaler Wert @type section: string @param section: Gültigkeitsbereich """ error = self.__get_error__(job, errnum, data) self.job_result = {'message': error['message'], 'code': error['code'], 'success': 'success', 'job': error['job'], 'value': value} self.logger.debug(job + " successfully done " + str(self.job_result)) # ------------------------------------------------------------------------------------------ # def info(self, job, data=None, errnum='01', value=''): """ Info loggen @type errnum: string @param errnum: Errornummer der aufrufenden Funktion @type value: string @param value: Optionaler Wert @type section: string @param section: Gültigkeitsbereich """ error = self.__get_error__(job, errnum, data) self.job_result = {'message': error['message'], 'code': error['code'], 'success': 'info', 'job': error['job'], 'value': value} self.logger.info(str(self.job_result)) # ------------------------------------------------------------------------------------------ # def warning(self, job, data=None, errnum='01', value=''): """ Warnung loggen @type errnum: string @param errnum: Errornummer der aufrufenden Funktion @type value: string @param value: Optionaler Wert """ error = self.__get_error__(job, errnum, data) self.job_result = {'message': error['message'], 'code': error['code'], 'success': 'warning', 'job': error['job'], 'value': value} self.logger.warning(str(self.job_result)) # ------------------------------------------------------------------------------------------ # def error(self, job, data=None, errnum='01', value=''): """ Error loggen @type errnum: string @param errnum: Errornummer der aufrufenden Funktion @type value: string @param value: Optionaler Wert """ error = self.__get_error__(job, errnum, data) self.job_result = {'message': error['message'], 'code': error['code'], 'success': 'error', 'job': error['job'], 'value': value} self.logger.error(str(self.job_result)) # ------------------------------------------------------------------------------------------ # def fatal(self, job, data=None, errnum='01', value='', section='execjob'): """ Fatal error loggen @type errnum: string @param errnum: Errornummer der aufrufenden Funktion @type value: string @param value: Optionaler Wert @type section: string @param section: Gültigkeitsbereich """ error = self.__get_error__(job, errnum, data) self.job_result = {'message': error['message'], 'code': error['code'], 'success': 'fatal', 'job': error['job'], 'value': value, 'section': section} self.logger.critical(str(self.job_result))