scrapy 设置logging无效?

在pipelines中,代码如下:

import logging
from scrapy.utils.log import configure_logging

configure_logging(install_root_handler=False)
logging.basicConfig(
    filename='log.txt',
    format='%(levelname)s: %(message)s',
    level=logging.INFO
)  
logging.error('s')

会在控制台输出s:2018-11-12 19:19:53 [root] ERROR: s
不会输出到设置的log.txt。
为什么呢?

阅读 3.8k
2 个回答

遇到过类似的问题,我也没有彻底解决,这可能是因为logging的全局设置问题。因为logging属于单例模式,而且basicConfig如果在root logging已经有过设置之后不会起作用。大项目中应该在读入所有模块之前进行logging的全局设置,不然可能会产生冲突。

新手上路,请多包涵

其他模块里设置过的话,就不能再次设置了。我今天也遇到了,发现自己的一个模块中有basicConfig, 导致之后的设置无效。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题