使用Python日志记录模块时重复日志输出

我正在使用python记录器。以下是我的代码:

导入操作系统
导入时间
导入日期时间
导入日志记录
类别记录器:
def myLogger(自我):
logger=logging.getLogger(’ProvisioningPython’)
logger.setLevel(logging.DEBUG)
now=datetime.datetime.now()
handler=logging.FileHandler(’/root/credentials/Logs/provisiongpython’+now.strftime(“%Y-%m-%d”)+’.log’)
格式化程序=logging.formatter(’%(asctime)s%(levelname)s%(message)s’)
handler.setFormatter(格式化程序)
logger.addHandler(处理程序)
返回记录器

我遇到的问题是,我在日志文件中为每个logger.info调用获取多个条目。我怎样才能解决这个问题

logging.getLogger()返回给定名称的相同实例。(文件)

问题是每次调用myLogger(),它都会向实例添加另一个处理程序,这会导致重复的日志

也许是这样的

导入操作系统
导入时间
导入日期时间
导入日志记录
记录器={}
def myLogger(名称):
全球伐木工人
如果是记录器,则获取(名称):
返回loggers.get(名称)
其他:
logger=logging.getLogger(名称)
logger.setLevel(logging.DEBUG)
now=datetime.datetime.now()
handler=logging.FileHandler(
“/root/credentials/Logs/provisionPython”
+now.strftime(“%Y-%m-%d”)
+“.log”)
格式化程序=logging.formatter('%(asctime)s%(levelname)s%(message)s')
handler.setFormatter(格式化程序)
logger.addHandler(处理程序)
记录器[名称]=记录器
返回记录器

发表评论