Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/323.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.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 从模块记录器记录到sys.stdout_Python_Logging_Python Logging - Fatal编程技术网

Python 从模块记录器记录到sys.stdout

Python 从模块记录器记录到sys.stdout,python,logging,python-logging,Python,Logging,Python Logging,我有以下简单的测试脚本: import logging import sys logger = logging.getLogger(__name__) handler = logging.StreamHandler(sys.stdout) handler.setLevel(logging.INFO) handler.setFormatter(logging.Formatter('%(name)s - %(levelname)s - %(message)s'$ logger.addHandle

我有以下简单的测试脚本:

import logging
import sys


logger = logging.getLogger(__name__)
handler = logging.StreamHandler(sys.stdout)
handler.setLevel(logging.INFO)
handler.setFormatter(logging.Formatter('%(name)s - %(levelname)s - %(message)s'$
logger.addHandler(handler)


logger.info('Hello World!')
logger.warning('Bad!')
我使用命令行中的
python test.py
运行此脚本。我得到:

__main__ - WARNING - Bad!
当我期望得到:

__main__ - WARNING - Bad!
__main__ - INFO - Hello World!
例如,我希望
信息
警告
日志消息都打印到控制台窗口,但只有
警告
消息打印到控制台窗口。怎么会呢?

我想答案就在这里

您也需要在
记录器
自身上设置
级别
,其级别(默认警告)将不允许来自其处理程序的消息具有低于父记录器中设置的级别

处理程序是用来过滤消息的。

我想它包含了答案

您也需要在
记录器
自身上设置
级别
,其级别(默认警告)将不允许来自其处理程序的消息具有低于父记录器中设置的级别

处理程序用于过滤消息。

这应该可以吗

import logging
import sys


logger = logging.getLogger(__name__)
logger.setLevel(logging.INFO)
handler = logging.StreamHandler(sys.stdout)
handler.setFormatter(logging.Formatter('%(name)s - %(levelname)s - %(message)s'))
logger.addHandler(handler)


logger.info('Hello World!')
logger.warning('Bad!')
您应该在
logger
对象上设置
setLevel

谢谢这应该行吗

import logging
import sys


logger = logging.getLogger(__name__)
logger.setLevel(logging.INFO)
handler = logging.StreamHandler(sys.stdout)
handler.setFormatter(logging.Formatter('%(name)s - %(levelname)s - %(message)s'))
logger.addHandler(handler)


logger.info('Hello World!')
logger.warning('Bad!')
您应该在
logger
对象上设置
setLevel

谢谢