django框架(一) 基於logging的sigton實現

import logging
import logging.config
import os
from 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=DEBUG
handlers=hand01,hand02
[logger_example01]
handlers=hand01,hand02
qualname=example01
propagate=0
[logger_example02]
handlers=hand01,hand03
qualname=example02
propagate=0
###############################################
[handlers]
keys=hand01,hand02,hand03
[handler_hand01]
class=StreamHandler
level=INFO
formatter=form02
args=(sys.stderr,)
[handler_hand02]
class=FileHandler
level=INFO
formatter=form01
args=('../log/Main.log', 'a')
[handler_hand03]
class=handlers.RotatingFileHandler
level=INFO
formatter=form02
args=('../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)s
datefmt=%a, %d %b %Y %H:%M:%S
[formatter_form02]
format=%(name)-12s: %(levelname)-8s %(message)s
datefmt=
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章