关于Scrapy日志如何与其他模块日志输出到一起

来源:16-1 scrapyd部署scrapy项目

慕尼黑7546459

2020-03-27

老师,
关于日志,现在遇到这样一个问题:
1、在scrapy本身自带的模块:如spider、pipelines、middleware, 我们通过scrapy提供的日志功能打印,如: self.logger.info(“spider start…”)、spider.logger.error(“xxxx”);都能正常输出到所配置的日志文件中。

2、但是正常情况下,在spider、pipelines, 需要调其他的模块的代码,如util.py,common.py啊等等,这些里面本身也会有日志输出。
我在util.py,common.py等的代码中,通过import logging,然后logger.info(“xxx”) 打印日志。

最后发现, util.pycommon.py 里面打印的日志,在scrapy中配置的日志文件中,并没有.

这个问题,该怎么解决呢?

写回答

2回答

bobby

2020-03-30

//img.mukewang.com/szimg/5e8143b5098a9e3009450233.jpg 这里可以看到 logger被自动注入到self中了  https://docs.scrapy.org/en/latest/topics/logging.html

0
2
bobby
回复
慕尼黑7546459
自定义函数中可以接收一个参数 logger,然后你在pipeline中调用的时候将logger传递进去吧 把spider的log传递到这个函数中就行了
2020-03-31
共2条回复

bobby

2020-03-28

scrapy是有自己的日志文件的,你自己启动的logger的日志不代表就要打印到scrapy的日志文件中

0
1
慕尼黑7546459
那怎么,才能把日志都输出到与scrapy的日志一起呢
2020-03-28
共1条回复

Scrapy打造搜索引擎 畅销4年的Python分布式爬虫课

带你彻底掌握Scrapy,用Django+Elasticsearch搭建搜索引擎

5796 学习 · 6290 问题

查看课程