django框架(一) 基于logging的sigton实现

来源:互联网 发布:房屋格局设计软件 编辑:程序博客网 时间:2024/06/07 12:23
import loggingimport logging.configimport osfrom RescSystemMng.settings import BASE_DIR__all__=['GetInstance' ,'debug']class LogHandle(object):    __sigton=None    def __init__(self):        self.path=os.path.join( BASE_DIR , "../conf/logger.conf" )          print( self.path  )        logging.config.fileConfig( self.path )         self.logger = logging.getLogger("example01")    def GetInstance(self):        if LogHandle.__sigton is None:            LogHandle.__sigton=LogHandle()        return LogHandle.__sigton     def debug(self , msg):        self.logger.debug(msg)    def info(self , msg):        self.logger.info(msg)    def warn(self , msg):        self.logger.warn(msg)

logger.conf内容如下

#logger.conf###############################################[loggers]keys=root,example01,example02[logger_root]level=DEBUGhandlers=hand01,hand02[logger_example01]handlers=hand01,hand02qualname=example01propagate=0[logger_example02]handlers=hand01,hand03qualname=example02propagate=0###############################################[handlers]keys=hand01,hand02,hand03[handler_hand01]class=StreamHandlerlevel=INFOformatter=form02args=(sys.stderr,)[handler_hand02]class=FileHandlerlevel=INFOformatter=form01args=('../log/Main.log', 'a')[handler_hand03]class=handlers.RotatingFileHandlerlevel=INFOformatter=form02args=('../log/Main.log', 'a', 10*1024*1024, 5)###############################################[formatters]keys=form01,form02[formatter_form01]format=%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)sdatefmt=%a, %d %b %Y %H:%M:%S[formatter_form02]format=%(name)-12s: %(levelname)-8s %(message)sdatefmt=
0 0