Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.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/7/elixir/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 2.7 Python logger正在PyCharm控制台和日志文件上打印两次消息_Python 2.7_Logging - Fatal编程技术网

Python 2.7 Python logger正在PyCharm控制台和日志文件上打印两次消息

Python 2.7 Python logger正在PyCharm控制台和日志文件上打印两次消息,python-2.7,logging,Python 2.7,Logging,类似的问题是由记录者两次被叫引起的。因此,在我的例子中,它可能是由第二个getLogger()引起的。有什么办法可以解决吗 import logging import logging.handlers logger = logging.getLogger("") logger.setLevel(logging.DEBUG) handler = logging.handlers.RotatingFileHandler( "the_log.log", maxBytes=3000000,

类似的问题是由记录者两次被叫引起的。因此,在我的例子中,它可能是由第二个
getLogger()
引起的。有什么办法可以解决吗

import logging
import logging.handlers

logger = logging.getLogger("")

logger.setLevel(logging.DEBUG)

handler = logging.handlers.RotatingFileHandler(
    "the_log.log", maxBytes=3000000, backupCount=2)

formatter = logging.Formatter(
    '[%(asctime)s] {%(filename)s:%(lineno)d} %(levelname)s - %(message)s')
handler.setFormatter(formatter)
logger.addHandler(handler)

# This is required to print messages to the console as well as the log file.
logging.getLogger().addHandler(logging.StreamHandler())

使用配置文件。e、 g.
logging.config.fileConfig('logging.ini')


在配置根记录器和同时使用非根记录器时,必须设置
logger.propagate=0
()


我知道这是很久以前提出的问题,但这是DuckDuckGo的最高结果。

是将同一行打印两次到控制台和文件,还是将每一行打印一次?这并不清楚,因为问题标题暗示了前者,但您在示例代码中的注释暗示了后者。如果这是第二种情况,我可以提交一个解释原因的答案。否则,我只有一些想法可以尝试。谢谢-我已经澄清了这个问题。是前者。我想打印到日志文件和控制台。但我只想把它打印到每一张上。但目前我在控制台和日志文件上都收到了一条重复的消息。您有可能导入此文件两次吗?参见中的示例。我将通过在那里抛出一些断言来开始故障排除。例如,在设置处理程序之前,
assert 0==len(logger.handlers)
-堆栈跟踪可能会指向此处的第二个导入程序。
[logger_root]
level=ERROR
handlers=stream_handler

[logger_webserver]
level=DEBUG
handlers=stream_handler
qualname=webserver
propagate=0