Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/365.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_Python 3.x_Logging - Fatal编程技术网

Python 信息级别的日志记录不需要';我不生产任何产品

Python 信息级别的日志记录不需要';我不生产任何产品,python,python-3.x,logging,Python,Python 3.x,Logging,我使用pythonshell运行了以下内容,并从命令行将其作为Python文件运行。我根本看不到我的日志输出 import logging formatter = logging.Formatter('%(asctime)s,%(msecs)d %(levelname)-8s [%(filename)s:%(lineno)d] %(message)s') stream_handler = logging.StreamHandler() stream_handler.setLevel(logg

我使用pythonshell运行了以下内容,并从命令行将其作为Python文件运行。我根本看不到我的日志输出

import logging

formatter = logging.Formatter('%(asctime)s,%(msecs)d %(levelname)-8s [%(filename)s:%(lineno)d] %(message)s')

stream_handler = logging.StreamHandler()
stream_handler.setLevel(logging.INFO)
stream_handler.setFormatter(formatter)

logger = logging.getLogger()
logger.addHandler(stream_handler)
logger.info(("info logging"))

使用logging.basicConfig()初始化日志记录系统。

您的日志记录输出几乎正确,只有一个例外。需要在记录器实例而不是处理程序实例上定义日志记录级别。因此,您的代码只需要非常小的调整即可工作:

import logging

formatter = logging.Formatter(
    '%(asctime)s,%(msecs)d %(levelname)-8s [%(filename)s:%(lineno)d] %(message)s'
)

stream_handler = logging.StreamHandler()
stream_handler.setFormatter(formatter)

logger = logging.getLogger()
logger.addHandler(stream_handler)
logger.setLevel(logging.INFO)

logger.info("info logging")
这段代码产生以下输出:

2019-08-21 15:04:55,118,118 INFO     [testHandler.py:11] info logging

注意,我还删除了
logger.info
调用上的双括号,因为它们不是必需的。

您需要设置记录器的级别

logger.setLevel(logging.INFO)
下面的语句可以从代码中删除

stream_handler.setLevel(logging.INFO)

记录器和处理程序可以具有不同的级别。您只设置了处理程序的级别,而没有设置记录器本身

import logging

formatter = logging.Formatter('%(asctime)s,%(msecs)d %(levelname)-8s [%(filename)s:%(lineno)d] %(message)s')

stream_handler = logging.StreamHandler()
stream_handler.setLevel(logging.INFO)
stream_handler.setFormatter(formatter)

logger = logging.getLogger()
logger.setLevel(logging.INFO)  # Required
logger.addHandler(stream_handler)
logger.info(("info logging"))

这是一个很好的建议,但我需要保持现有的编码风格。