logging_singleton.py
import logging
import logging.config
class LoggingSingleton:
_instance = None
def __new__(cls, *args, **kwargs):
if not cls._instance:
cls._instance = super(LoggingSingleton, cls).__new__(cls)
cls._instance.configure_logging()
return cls._instance
def configure_logging(self):
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'formatters': {
'verbose': {
'format': '%(levelname)s %(asctime)s %(module)s %(process)d %(thread)d %(message)s'
},
},
'handlers': {
'console': {
'level': 'DEBUG',
'class': 'logging.StreamHandler',
'formatter': 'verbose'
},
},
'root': {
'handlers': ['console'],
'level': 'DEBUG',
},
}
logging.config.dictConfig(LOGGING)
def get_logger(self, name):
return logging.getLogger(name)
创建单例并导出
logging_singleton = LoggingSingleton()