python 记录器登录两次
python logger loggin twice
我有一个简单的烧瓶应用程序,它应该登录到控制台。我的问题是它正在记录两次到控制台。
我有以下日志记录配置:
root = logging.getLogger()
root.setLevel(logging.INFO)
ch = logging.StreamHandler(sys.stdout)
formatter = logging.Formatter('%(asctime)s | src="%(name)s" | lvl="%(levelname)s" | msg="%(message)s"')
ch.setFormatter(formatter)
ch.setLevel(logging.INFO)
root.addHandler(ch)
#werkzeug disable werkzeug logs
werkzeug_logger = logging.getLogger('werkzeug')
werkzeug_logger.setLevel(logging.ERROR)
控制台输出:
INFO:auth:Starting oauth flow
2017-06-08 14:16:08,494 | src="auth" | lvl="INFO" | msg="Starting oauth flow"
尝试确定 root
有多少处理程序:
print(len(root.handlers))
我猜你有不止一个处理程序。为避免这种情况,如果没有其他处理程序,您可以添加一个处理程序:
if not root.handlers:
root.addHandler(...)
您可以从记录器中删除所有处理程序:
for x in root.handlers.copy():
root.removeHandler(x)
我有一个简单的烧瓶应用程序,它应该登录到控制台。我的问题是它正在记录两次到控制台。
我有以下日志记录配置:
root = logging.getLogger()
root.setLevel(logging.INFO)
ch = logging.StreamHandler(sys.stdout)
formatter = logging.Formatter('%(asctime)s | src="%(name)s" | lvl="%(levelname)s" | msg="%(message)s"')
ch.setFormatter(formatter)
ch.setLevel(logging.INFO)
root.addHandler(ch)
#werkzeug disable werkzeug logs
werkzeug_logger = logging.getLogger('werkzeug')
werkzeug_logger.setLevel(logging.ERROR)
控制台输出:
INFO:auth:Starting oauth flow
2017-06-08 14:16:08,494 | src="auth" | lvl="INFO" | msg="Starting oauth flow"
尝试确定 root
有多少处理程序:
print(len(root.handlers))
我猜你有不止一个处理程序。为避免这种情况,如果没有其他处理程序,您可以添加一个处理程序:
if not root.handlers:
root.addHandler(...)
您可以从记录器中删除所有处理程序:
for x in root.handlers.copy():
root.removeHandler(x)