请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

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

老师,
关于日志,现在遇到这样一个问题:
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中配置的日志文件中,并没有.

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

正在回答 回答被采纳积分+3

2回答

bobby 2020-03-30 08:56:49

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

0 回复 有任何疑惑可以回复我~
  • 提问者 慕尼黑7546459 #1
    额, 这个文档主要介绍的是框架中如何使用log, 比如Spider、middleware、piplines中等。
    
    但是, 该怎样,才能把这些隶属于框架模块的日志 和 自定义的模块(util、common.py等)的日志打印到一起呢?  日志肯定是输出到一起,才能便于排查问题啊
    回复 有任何疑惑可以回复我~ 2020-03-30 11:22:26
  • bobby 回复 提问者 慕尼黑7546459 #2
    自定义函数中可以接收一个参数 logger,然后你在pipeline中调用的时候将logger传递进去吧 把spider的log传递到这个函数中就行了
    回复 有任何疑惑可以回复我~ 2020-03-31 17:23:45
bobby 2020-03-28 12:27:00

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

0 回复 有任何疑惑可以回复我~
  • 提问者 慕尼黑7546459 #1
    那怎么,才能把日志都输出到与scrapy的日志一起呢
    回复 有任何疑惑可以回复我~ 2020-03-28 12:28:44
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信