您是否考虑编写类似实现的日志记录模块。像下面这样的东西
制作一个单独的 Logger 类。当您需要一个记录器对象时,调用 Logger.get_logger(your_class_name)。此方法要么创建一个新的记录器并将其返回,要么返回已为该特定记录器名称创建的记录器。然后使用这个记录器。
这样,您可以随时使用标准记录器更改您自己的记录器。开发人员将熟悉您使用的方法。
logger = Logger.get_logger(Deployer.__class__.__name__)
logger.info("Starting deployment")
这是一个非常简单的记录器实现。
"""
Sample logger implementation
"""
import datetime
class Logger:
"""
Main logger class
"""
_cached_loggers = dict()
def __init__(self, logger_name):
self.name = logger_name
self._cached_loggers[logger_name] = self
@classmethod
def get_logger(cls, logger_name):
"""
Return a new logger or already existed one
"""
if logger_name in cls._cached_loggers:
logger = cls._cached_loggers[logger_name]
else:
logger = Logger(logger_name)
return logger
def info(self, msg):
"""
logging info logs
"""
print u"{0} - {1} - {2}".format(self.name,
datetime.datetime.now(),
unicode(msg))