Example #1
0
class Msg_Queue():
    
    def __init__(self,serverhost,serverport,hostuuid):
        self.logmsg_queue = Queue.Queue() 
        self.logserver = SocketServer(serverhost,serverport)
        self.hostuuid = hostuuid
        log_conf.HOSTUUID = hostuuid
        self.log_regex = Log_Regex()
        
    def append_logmsg_object(self,logmsg_object):
    
        try:
            self.logmsg_queue.put(logmsg_object)
        except:
            syslog.syslog(syslog.LOG_ERR,"append_losgmsg_object error: "+str(traceback.format_exc()))
        return
    
    def get_logmsg(self):
    
        while True:
            flag,logmsg = self.logserver.get()
            if flag:
                self.append_logmsg_object(logmsg)
    
    def dispatch_logmsg(self):
        
        self.log_regex.get_regex_patterns()
        
        while True:
            logmsg = self.logmsg_queue.get()
            log_para = {}
            
            try:   
                if not checkutf8(logmsg):
                    #对于非utf8编码实行严格过滤
                    continue
                    
                log_conf.init_logpara(log_para,logmsg)
                
                if  log_conf.unknown_msg(log_para):
                    log = LogFactory.create_log(log_para)
                    log.dealwithlog(log_para)
                    continue 
                
                if not log_conf.check_priority(log_para):
                    continue
                self.log_regex.regex_match(log_para)
                log = LogFactory.create_log(log_para)
                log.dealwithlog(log_para)
                    
            except:
                syslog.syslog(syslog.LOG_ERR,"log dispatch err:"+str(traceback.format_exc()))
                continue
        
                
                
                
Example #2
0
 def __init__(self,serverhost,serverport,hostuuid):
     self.logmsg_queue = Queue.Queue() 
     self.logserver = SocketServer(serverhost,serverport)
     self.hostuuid = hostuuid
     log_conf.HOSTUUID = hostuuid
     self.log_regex = Log_Regex()