Comment extraire les processus,thread name,levelname personnalisé python enregistreur

Je suis en train d'élaborer personnalisé enregistreur de programme,ainsi que le demande j'ai besoin de récupérer le processus,le fil et le nom de l'objet à l'Intérieur de la fonction appelée(Dans l'exemple ci-dessous ses obj doit chercher à l'intérieur de la get_configured_logger fonction) et le nom de la classe à laquelle obj appartient. comme le montre avec des commentaires dans le code ci-dessous, veuillez donner quelques idées pour y parvenir.

import logging, logging.handlers
from logging import StreamHandler, Formatter
class A:
  def get_configured_logger(self,name):
      logger = logging.getLogger(name)
      if (len(logger.handlers) == 0):                
                FORMAT = "%(process)s %(thread)s:-(asctime)s - %(name)s - %(levelname)s - %(message)-%(module)"

                #print 'process:',process
                #print 'thread:',thread
                #print 'levelname:',levelname
                #print  'Module:',(name portion of filename).

                #print 'obj:,'name of the object(Eg:obj),current function( Eg: get_configured_logger) called by' 
                #print 'class name:(obj is instance of class)' 
                formatter = logging.Formatter(fmt=FORMAT)                                 
                handler = logging.StreamHandler()
                handler.setFormatter(formatter)
                logger.addHandler(handler)
                logger.setLevel(logging.DEBUG)        
      return logger

if __name__=="__main__":
    obj=A()
    logger = obj.get_configured_logger("DEMO")
    logger.debug("TEST")

Grâce

hema

OriginalL'auteur user1559873 | 2012-10-20