使用根日志python分离本地记录器
我正在使用python中的日志模块。在我的使用根日志python分离本地记录器,python,logging,Python,Logging,我正在使用python中的日志模块。在我的main.py文件中,我使用了两个记录器 根日志记录器(从同一目录中的多个模块获取日志) 本地记录器(用于记录特定信息) 我希望本地记录器的信息与根记录器分开。但当我创建单独的记录器时。本地记录器的信息也存在于根记录器信息中 下面是我如何做到这一点的示例 # main.py import logging def setup_logger(filename, name = ''): if name == '': logging.b
main.py
文件中,我使用了两个记录器
本地记录器
的信息与根记录器
分开。但当我创建单独的记录器时。本地记录器的信息也存在于根记录器信息中
下面是我如何做到这一点的示例
# main.py
import logging
def setup_logger(filename, name = ''):
if name == '':
logging.basicConfig(filename=filename,
format='%(asctime)s %(funcName)s %(levelname)s %(message)s',
filemode='a')
logger = logging.getLogger()
else:
"""
handler = logging.FileHandler(filename, mode = 'a')
handler.setFormatter(logging.Formatter('%(asctime)s %(funcName)s %(levelname)s %(message)s'))
logger = logging.getLogger(name)
logger.addHandler(handler)
"""
formatter = logging.Formatter('%(asctime)s %(levelname)s %(message)s')
handler = logging.FileHandler(filename)
handler.setFormatter(formatter)
logger = logging.getLogger(name)
logger.setLevel(logging.DEBUG)
logger.addHandler(handler)
return logger
logger.setLevel(logging.DEBUG)
return logger
logger = setup_logger('main.log')
local_logger = setup_logger('local_log.log', 'local_log')
如果不希望本地记录器将其日志发送到根记录器处理程序,则必须停止传播:
logger.propagate = False
文档的这一部分很好地解释了这一点:您是否查看了,以及您的日志记录器与根日志记录器的关系?是的,我希望本地日志记录器独立于日志层次结构。但不知何故,它与根有关。我不知道如何区分这两者。
logger.propagate = False