描述
记录意味着跟踪事件,事件使用内置记录系统并定义实现应用程序和库的函数和类.记录是一种随时可用的材料,可以使用记录设置中列出的Scrapy设置.
Scrapy将设置一些默认设置并在scrapy.utils的帮助下处理这些设置.运行命令时的log.configure_logging().
日志级别
在Python中,日志消息有五种不同的严重级别.以下列表以升序显示标准日志消息 :
logging.DEBUG : 去;用于调试消息(最低严重性)
logging.INFO : 提供信息性消息
logging.WARNING : 用于警告信息
logging.ERROR : 对于常规错误
logging.CRITICAL : 严重错误(最高严重性)
如何记录消息
以下代码显示了记录使用 logging.info 级别的消息.
import logging logging.info("这是一个信息")
上面的日志消息可以使用 logging.log 作为参数传递,如下所示 :
import logging logging.log(logging.INFO,"这是一个信息")
现在,您还可以使用记录器使用日志记录助手记录来封装消息,以使记录消息清楚地显示如下 :
import logginglogger = logging.getLogger()logger.info("这是一个信息")
可以有多个记录器,可以通过使用 logging.getLogger functi获取其名称来访问这些记录器显示如下.
import logging logger = logging.getLogger('mycustomlogger') logger.info( "这是一个信息")
使用包含模块路径的 __ name __ 变量的任何模块都可以使用自定义记录器显示如下 :
import logging logger = logging.getLogger(__ name__) logger.info("这是一个信息")
从蜘蛛登录
每个蜘蛛实例都有一个记录器在其中,可以使用如下 :
import scrapy class LogSpider(scrapy.Spider): name = 'logspider' start_urls = ['http://dmoz.com'] def parse(self, response): self.logger.info('Parse function called on %s', response.url)
在上面的代码中,记录器是创建的d使用Spider的名称,但您可以使用Python提供的任何自定义记录器,如下面的代码所示 :
import loggingimport scrapylogger = logging.getLogger('customizedlogger')class LogSpider(scrapy.Spider): name = 'logspider' start_urls = ['http://dmoz.com'] def parse(self, response): logger.info('Parse function called on %s', response.url)
记录配置
记录器无法自行显示它们发送的消息.因此,他们需要"处理程序"来显示这些消息,处理程序会将这些消息重定向到各自的目的地,如文件,电子邮件和标准输出.
根据以下设置,Scrapy将配置记录器的处理程序.
记录设置
以下设置用于配置记录和减号;
LOG_FILE 和 LOG_ENABLED 决定日志消息的目的地.
当您将 LOG_ENCODING 设置为false时,它不会显示日志输出消息.
LOG_LEVEL 将确定消息的严重性顺序;严重性较低的消息将被过滤掉.
LOG_FORMAT 和 LOG_DATEFORMAT 用于指定所有消息的布局.
当您将 LOG_STDOUT 设置为true时,您的流程的所有标准输出和错误消息都将被重定向到日志.
命令行选项
Scrapy设置可以通过传递来覆盖命令行参数,如下表所示 :
Sr.No | Command&说明 |
---|---|
1 | --logfile FILE 覆盖 LOG_FILE |
2 | - loglevel/-L LEVEL 覆盖 LOG_LEVEL |
3 | - nolog 将 LOG_ENABLED 设置为False |
scrapy.utils.log模块
此函数可用于初始化日志记录Scrapy的默认值.
scrapy.utils.log.configure_logging(settings = None,install_root_handler = True)
Sr.No | 参数&说明 |
---|---|
1 | settings (字典,无) 它为根记录器创建和配置处理程序.默认情况下,它是无. |
2 | install_root_handler(bool) 它指定安装根记录处理程序.默认情况下,它是 True . |
上述函数 :
通过Python标准日志记录路由警告和扭曲记录.
为Scrapy和ERROR分配DEBUG等级为扭曲记录器.
如果LOG_STDOUT设置为true,则将stdout路由到日志.
默认选项可以是使用设置参数覆盖.如果未指定设置,则使用默认值.当install_root_handler设置为true时,可以为root logger创建处理程序.如果设置为false,则不会设置任何日志输出.使用Scrapy命令时,configure_logging将自动调用,并且可以在运行自定义脚本时显式运行.
要手动配置日志记录的输出,可以使用 logging.basicConfig( )显示如下 :
import logging from scrapy.utils.log import configure_logging configure_logging(install_root_handler = False) logging.basicConfig ( filename = 'logging.txt', format = '%(levelname)s: %(your_message)s', level = logging.INFO )