话不多说,上代码!
Logger_Singleton.py
class Logger_Singleton(object):
class __Logger(object):
__instance = None
def __init__(self,file_name):
self.file_name = file_name
def _write_log(self,level,msg):
with open(self.file_name,"a") as write_log:
write_log.write("[{0}] : {1}".format(level,msg)
def critical(self,msg):
self._write_log("CRITICAL",msg)
def error(self,msg):
self._write_log("ERROR",msg)
def warn(self,msg):
self._write_log("WARN",msg)
def info(self,msg):
self._write_log("INFO",msg)
def debug(self,msg):
self._write_log("DEBUG",msg)
def __str__(self,file_name):
return "{0!r} {1}".format(self,file_name)
__instance = None
def __new__(cls,file_name):
if not cls.__instance:
cls.__instance = cls.__Logger(file_name)
return cls.instance
def __init__(self,name):
self.name = file_name
def __getattr_(self,name):
return getattr(self.instance,name)
def __setattr(self,name):
return setattr(self.instance.name)
test_logger.py
from Logger_Singleton import Logger_Singleton
file_name = "./log.txt"
log_01 = Logger_Singleton(file_name)
log_02 = Logger_Singleton(file_name)
print(id(log_01))
print(id(log_02))
log_01.critical("I am a critical")
log_02.debug("I am a debug")