zoukankan      html  css  js  c++  java
  • scrapy 日志处理

    Scrapy生成的调试信息非常有用,但是通常太啰嗦,你可以在Scrapy项目中的setting.py中设置日志显示等级:

    LOG_LEVEL = 'ERROR'

    日志级别

    Scrapy日志有五种等级,按照范围递增顺序排列如下:(注意《Python网络数据采集》书中这里有错)

    • CRITICAL - 严重错误
    • ERROR - 一般错误
    • WARNING - 警告信息
    • INFO - 一般信息
    • DEBUG - 调试信息

    如果日志层级设置为ERROR,那么只有CRITICAL和ERROR日志会显示出来。

    如果日志层级设置为DEBUG,那么所有信息都会显示出来,其它同理。

    设置log级别

    可以通过终端选项 -loglevel/-L 或 LOG_LEVEL 来设置log级别。

    记录信息

    下面给出如何使用WARING级别来记录信息

    from scrapy import log
    log.msg("This is a warning", level=log.WARING)
    

      

    在Spider中添加log

    在spider中添加log的推荐方式是使用Spider的 log() 方法。该方法会自动在调用 scrapy.log.start() 时赋值 spider 参数。

    其它的参数则直接传递给 msg() 方法

    scrapy.log模块

    scrapy.log.start(logfile=None, loglevel=None, logstdout=None)
    

      

    启动log功能。该方法必须在记录任何信息之前被调用。否则调用前的信息将会丢失。

    参数:

    • logfile(str) - 用于保存log输出的文件路径。如果被忽略,LOG_FILE设置会被启用。如果两个参数都是None(默认值),log会被输出到标准错误流(stderr),一般都直接打印在终端命令行中。
    • loglevel - 记录的最低日志级别,可用的值在上面提到了
    • logstdout(boolean) - 如果设置为True,所有的应用的标准输出(包括标准错误)都将记录,例如,如果程序段中有 "print hello",那么执行到这里时,"hello"也会被记录到日志中。 
    scrapy.log.msg(message,level=INFO,spider=None)
    

      

    记录信息

    参数:

    • message(str) - log信息
    • level - 该信息对应的级别
    • spider(spider 对象) - 记录信息的spider。当记录的信息和特定的spider有关联时,该参数必须使用

    默认情况下日志显示在终端,但也可以通过下面的命令输出到一个独立的文件中:

    $scrapy crawl spiderName -s LOG_FILE=spider.log (注意这里等号两边没有空格)
    

      

    或者上面提到的 start() 中参数指定输出文件位置。


    如果目录中没有spider.log 那么运行程序会创建一个新文件,然后把所有的日志都保存到里面。

    如果已经存在,会在原文后面追加新的日志内容。

  • 相关阅读:
    windows64系统下安装 redis服务 (详细)
    周期信号的傅里叶级数表示
    LeetCode 36——有效的数独
    LeetCode 3——无重复字符的最长子串
    线性时不变系统的卷积
    信号与系统
    C++ 学习笔记之——输入和输出
    LeetCode 74——搜索二维矩阵
    LeetCode 389——找不同
    LeetCode 2——两数相加
  • 原文地址:https://www.cnblogs.com/pythonClub/p/9853078.html
Copyright © 2011-2022 走看看