我在后台调试 在后台调试scrapy spider的时候,总是觉得后台命令窗口 打印的东西太多了不便于观察日志,因此需要一个日志文件记录信息,这样以后会 方便查找问题。

分两种方法吧。

1.简单粗暴。直接命令里面配置LOG_FILE

scrapy crawl hupu -s LOG_FILE=scrapy_hupu_log.log

2.使用logging

在setting中加入配置
LOG_FILE = "hupuSpider.log"
LOG_LEVEL = 'INFO'
# LOG_ENABLED 默认: True,启用logging
# LOG_ENCODING 默认: 'utf-8',logging使用的编码
# LOG_FILE 默认: None,在当前目录里创建logging输出文件的文件名
# LOG_LEVEL 默认: 'DEBUG',log的最低级别
# LOG_STDOUT 默认: False 如果为 True,进程所有的标准输出(及错误)将会被重定向到log中。例如,执行 print "hello" ,其将会在Scrapy log中显示

使用

import logging
logging.log(logging.INFO, 'log content')

logging模块是Python提供的自己的程序日志记录模块。

在大型软件使用过程中,出现的错误有时候很难进行重现,因此需要通过分析日志来确认错误位置,这也是写程序时要使用日志的最重要的原因。

scrapy使用python内置的logging模块记录日志


日志的级别

1. logging.CRITICAL - for critical errors (highest severity)

2. logging.ERROR - for regular errors

3. logging.WARNING - for warning messages

4. logging.INFO - for informational messages

5. logging.DEBUG - for debugging messages (lowest severity)


基本使用方法

1.简单使用方法

import logging

Logging.warning(“this is a test ”)

执行结果:

2.通用的记录日志的方法,可加入日志的级别

import logging

Logging.log(logging.WARNING,”this is a warning”)

3,通过logger记录日志

import logging

logger=logging.getLogger(_name_)

Logger.warning(“this is a warning”)


在scrapy中使用

Scrapy provides a logger within each Spider instance, that can be accessed and used like this:

import scrapy

class MySpider(scrapy.Spider):

name = 'myspider'

start_urls = ['http://scrapinghub.com']

def parse(self, response):

self.logger.info('Parse function called on %s', response.url)

That logger is created using the Spider’s name, but you can use any custom Python logger you want. For example:

import logging import scrapy

logger = logging.getLogger('mycustomlogger')

class MySpider(scrapy.Spider):

name = 'myspider'

start_urls = ['http://scrapinghub.com']

def parse(self, response):

logger.info('Parse function called on %s', response.url)


在settings.py中配置

These settings can be used to configure the logging:

• LOG_FILE

• LOG_ENABLED

• LOG_ENCODING

• LOG_LEVEL

• LOG_FORMAT

• LOG_DATEFORMAT

• LOG_STDOUT

可参考https://www.cnblogs.com/sufei-duoduo/p/5880988.html,https://doc.scrapy.org/en/0.12/topics/logging.html,https://www.cnblogs.com/similarface/p/5179193.html

最新文章

  1. BZOJ2960: 跨平面
  2. 【JDK】电脑上安装多个JDK ,修改JAVA_HOME后没有作用
  3. [git]解决:git config --global push.default matching
  4. 使用XmlDocument.SelectNodes遍历xml元素遇到的一个XPathException
  5. 【Java】ArrayList和LinkedList的区别
  6. Android Studio开发环境部署
  7. EL与JSTL注意事项汇总
  8. laravel框架中所用到的依赖注入
  9. 【译】.NET Core 3.0 Preview 3中关于ASP.NET Core的更新内容
  10. Linux-yum只下载不安装
  11. ip代理简单方法
  12. 2018-2019-2 20175202实验二《Java面向对象程序设计》实验报告
  13. Handling Text in Python 相关命令
  14. JSON Support in PostgreSQL and Entity Framework
  15. Docker镜像的使用
  16. 从web到搭建ssm环境
  17. Dubbo的使用入门
  18. 几个H5炫酷特效
  19. Unity3d中默认函数调用顺序(MonoBehaviour)
  20. 关于VS2008和VS2013中字体的选择

热门文章

  1. Java并发编程的艺术读书笔记(1)-并发编程的挑战
  2. java to kotlin (2) - lambda编程
  3. 2017-12-30-如何彻底清除现存GIT仓库的大量提交历史
  4. Codeforces D. Sorting the Coins
  5. 关于fprint()和fwrite()
  6. YII关联字段并带搜索排序功能
  7. VLAN 模式下的 OpenStack 管理 vSphere 集群方案
  8. iOS UITableView左滑操作功能的实现(iOS8-11)
  9. [dsu on tree]【学习笔记】
  10. 2017人生总结(MECE分析法)