Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/344.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python记录器日志记录两次_Python_Logging_Flask_Werkzeug - Fatal编程技术网

python记录器日志记录两次

python记录器日志记录两次,python,logging,flask,werkzeug,Python,Logging,Flask,Werkzeug,我有一个简单的烧瓶应用程序,应该登录到控制台。我的问题是它两次登录到控制台 我有以下日志配置: 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.s

我有一个简单的烧瓶应用程序,应该登录到控制台。我的问题是它两次登录到控制台

我有以下日志配置:

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
werkzeug_logger
?root。我想停止werkzeug logger。werkzeug有时使用默认的logger(谷歌搜索)是的,它附加了一个额外的处理程序,我删除了它,现在它可以正常工作了。谢谢!