Wie fetch-Prozess,thread-Namen,levelname in kundenspezifische python-logger

Ich entwickle maßgeschneiderte logger-Programm,wie pro die Anforderung, die ich brauche zu Holen, der Prozess,thread und den Namen des Objekts Innerhalb der Funktion(Im Beispiel unten seine obj abrufen muss innerhalb der get_configured_logger-Funktion) und den Klassennamen, zu dem obj gehört. wie gezeigt mit Kommentaren im code unten, bitte geben Sie einige Ideen, um dies zu erreichen.

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")

Dank

hema

InformationsquelleAutor user1559873 | 2012-10-20

Schreibe einen Kommentar