Exemple #1
0
 def __init__(self,config,fichier=None,clean=False):
     self.ERR=1
     self.WARN=3
     self.INFO=5
     self.DEBUG=7
     self.TRACE=9
     self.config=config
     if config.flags_semaphores['logs']:
         self.semaphore_log=threading.Semaphore()
     else:
         self.semaphore_log=PseudoSemaphore()
     if fichier:
         self.file_default=fichier
     self.clean=clean
Exemple #2
0
class log:

    file_default='logs.txt'
    
    def __init__(self,config,fichier=None,clean=False):
        self.ERR=1
        self.WARN=3
        self.INFO=5
        self.DEBUG=7
        self.TRACE=9
        self.config=config
        if config.flags_semaphores['logs']:
            self.semaphore_log=threading.Semaphore()
        else:
            self.semaphore_log=PseudoSemaphore()
        if fichier:
            self.file_default=fichier
        self.clean=clean


    def verif(self,fichier,niv):
        if not fichier:
            fichier=self.file_default
        if not niv:
            niv=self.ERR
        fichier=self.config.logs_redirect.get(fichier,fichier)
        level_max=self.config.logs_levels.get(fichier,self.config.logs_levels.get('default',10))
        if niv > level_max:
            return None
        return fichier

    def traceback(self,file=None,niv=None):
        file=self.verif(file,niv)
        if file:
            self.semaphore_log.acquire()
            try:
                f=open('%s/%s' % (self.config.path['logs'],file) , 'a' )
                f.write('[%s]%s : %s\n' % (niv,datetime.datetime.now(),"==== TRACEBACK START ===="))
                traceback.print_exc(file=f)
                f.write('[%s]%s : %s\n' % (niv,datetime.datetime.now(),"===== TRACEBACK END ====="))
                f.close()
            except:
                pass
            self.semaphore_log.release()

    def L(self,niv,text,file=None):
        file=self.verif(file,niv)
        if file:
            self.semaphore_log.acquire()
            try:
                f=open('%s/%s' % (self.config.path['logs'],file) , 'a' )
                if self.clean:
                    f.write('%s\n' % text)
                else:
                    f.write('[%s]%s : %s\n' % (niv,datetime.datetime.now(),text))
                f.close()
            except:
                pass
            self.semaphore_log.release()

    def err(self,text,file=None):
        self.L(self.ERR,text,file)
    def warn(self,text,file=None):
        self.L(self.WARN,text,file)
    def info(self,text,file=None):
        self.L(self.INFO,text,file)
    def debug(self,text,file=None):
        self.L(self.DEBUG,text,file)
    def trace(self,text,file=None):
        self.L(self.TRACE,text,file)