Exemple #1
0
 def fatal(self, content):
     try:
         if self.FATAL < self.__current_log_level:
             return
         self.__process.write(content)
     except:
         SysLog.error(traceback.format_exc())
Exemple #2
0
 def report(self, content):
     try:
         if self.REPORT < self.__current_log_level:
             return
         self.__report.write(content)
     except:
         SysLog.error(traceback.format_exc())
Exemple #3
0
    def __clean(self):
        try:
            if self.max_count < 0:
                return
            sorted_names = dict()
            """:type: dict[int, string]"""
            names = os.listdir(self.target)
            for name in names:
                if not re.match(r'^' + self.file_name + r'\.\d{20}$', name):
                    continue
                when = name.split('.')[-1]
                sorted_names[int(when)] = name
            deleted_count = len(sorted_names) - self.max_count

            deleted_list = list()
            for when, name in sorted_names.items():
                if deleted_count <= 0:
                    break
                deleted_list.append(name)
                deleted_count -= 1

            for name in deleted_list:
                full_path = os.path.join(self.target, name)
                os.remove(full_path)
        except:
            SysLog.error(traceback.format_exc())
Exemple #4
0
 def debug(self, content):
     try:
         if self.DEBUG < self.__current_log_level:
             return
         self.__process.write(content)
     except:
         SysLog.error(traceback.format_exc())
Exemple #5
0
 def open(self):
     try:
         self.handler = open(self.file_path, 'ab')
         self.current_size = self.handler.tell()
         return True
     except:
         SysLog.error(traceback.format_exc())
Exemple #6
0
 def __rename(self):
     try:
         ending = datetime.datetime.now().strftime('%Y%m%d%H%M%S%f')
         new_file_path = self.file_path + '.' + ending
         os.rename(self.file_path, new_file_path)
     except:
         SysLog.error(traceback.format_exc())
Exemple #7
0
    def write(self, content):
        try:
            if self.lock is None:
                return self.__write(content)

            with self.lock:
                return self.__write(content)
        except:
            SysLog.error(traceback.format_exc())
Exemple #8
0
 def close(self):
     try:
         if self.handler is None:
             return
         if self.current_size <= 0:
             return
         self.handler.flush()
         self.handler.close()
         self.handler = None
     except:
         SysLog.error(traceback.format_exc())
Exemple #9
0
 def report(cls, msg, vid='', keyword='normal'):
     try:
         if cls.REPORT < cls.__current_log_level:
             return
         content = cls.__join_content(vid=vid,
                                      keyword=keyword,
                                      level='report',
                                      msg=msg)
         if not content:
             return
         cls.__report.write(content)
     except:
         SysLog.error(traceback.format_exc())
Exemple #10
0
 def fatal(cls, msg, vid='', keyword='normal'):
     try:
         if cls.FATAL < cls.__current_log_level:
             return
         content = cls.__join_content(vid=vid,
                                      keyword=keyword,
                                      level='fatal',
                                      msg=msg)
         if not content:
             return
         cls.__process.write(content)
     except:
         SysLog.error(traceback.format_exc())
Exemple #11
0
    def __write(self, content):
        try:
            try:
                self.handler.write(content)
                self.current_size = self.handler.tell()
            except Exception, e:
                self.close()
                self.open()
                SysLog.error(e.message)

            if self.current_size >= self.max_size:
                self.close()
                self.__rename()
                self.__clean()
                self.open()
            return True
Exemple #12
0
 def __join_content(cls, vid, keyword, level, msg):
     try:
         separator = '\x1E'
         the_id = '%s_%s' % (os.getpid(), threading.current_thread().ident)
         content = ''
         content += '[%s]%s' % (datetime.datetime.now().strftime(
             '%Y-%m-%d %H:%M:%S.%f'), separator)
         content += '[%s]%s' % (level, separator)
         content += '[%s]%s' % (the_id, separator)
         content += '[%s]%s' % (cls.__env, separator)
         content += '[%s]%s' % (vid, separator)
         content += '[%s]%s' % (keyword, separator)
         frame = inspect.currentframe().f_back.f_back
         info = traceback.extract_stack(f=frame, limit=1)[0]
         content += '[%s:%s:%s]%s' % (info[0], info[1], info[2], separator)
         content += '[%s]' % msg
         content += '\n'
         return content
     except:
         SysLog.error(traceback.format_exc())
Exemple #13
0
 def __join_content(cls, vid, keyword, level, msg):
     try:
         if cls.__thread_local.the_id is None:
             the_pid = os.getpid()
             the_tid = threading.current_thread().ident
             cls.__thread_local.the_id = '%s_%s' % (the_pid, the_tid)
         the_id = cls.__thread_local.the_id
         content = ''
         content += '[%s]%s' % (datetime.datetime.now().strftime(
             '%Y-%m-%d %H:%M:%S.%f'), cls.__sep)
         content += '[%s]%s' % (level, cls.__sep)
         content += '[%s]%s' % (the_id, cls.__sep)
         content += '[%s]%s' % (cls.__env, cls.__sep)
         content += '[%s]%s' % (vid, cls.__sep)
         content += '[%s]%s' % (keyword, cls.__sep)
         frame = inspect.currentframe().f_back.f_back
         info = traceback.extract_stack(f=frame, limit=1)[0]
         content += '[%s:%s:%s]%s' % (info[0], info[1], info[2], cls.__sep)
         content += '[%s]' % msg
         content += '\n'
         return content
     except:
         SysLog.error(traceback.format_exc())
Exemple #14
0
            try:
                self.handler.write(content)
                self.current_size = self.handler.tell()
            except Exception, e:
                self.close()
                self.open()
                SysLog.error(e.message)

            if self.current_size >= self.max_size:
                self.close()
                self.__rename()
                self.__clean()
                self.open()
            return True
        except:
            SysLog.error(traceback.format_exc())

    def close(self):
        try:
            if self.handler is None:
                return
            if self.current_size <= 0:
                return
            self.handler.flush()
            self.handler.close()
            self.handler = None
        except:
            SysLog.error(traceback.format_exc())

    def __rename(self):
        try: