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