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=