Scrapy记录
记录 意味着跟踪事件,它使用内置的日志记录系统并定义实现应用程序和库的函数和类。记录是一种随时可用的材料,可用于记录设置中列出的Scrapy设置。Scrapy会设置一些默认设置,并在运行命令时通过scrapy.utils.log.configure_logging()来处理这些设置。
日志级别
在Python中,日志消息有五种不同级别的严重性。以下列表按升序显示标准日志消息:
- logging.DEBUG - 用于调试消息(最低严重性)
- logging.INFO - 用于提供信息
- 记录 。警告 - 用于警告消息
- logging.ERROR - 用于常规错误
- logging.CRITICAL - 用于严重错误(最高严重性)
如何记录消息
以下代码显示使用 logging.info 级别记录消息。
import logging logging.info("This is an information")
上面的日志消息可以使用 logging.log 作为参数传递,如下所示:
import logging logging.log(logging.INFO, "This is an information")
现在,您还可以使用记录器来使用记录助手日志记录消息,以便将记录消息清晰地显示如下:
import logging logger = logging.getLogger() logger.info("This is an information")
可以有多个记录器,可以通过使用如下所示的 logging.getLogger 函数获取它们的名称来访问这些记录器。
import logging logger = logging.getLogger('mycustomlogger') logger.info("This is an information")
定制记录器可以用于任何使用 name 变量的模块,该变量包含如下所示的模块路径:
import logging logger = logging.getLogger(__name__) logger.info("This is an information")
从蜘蛛记录
每个蜘蛛实例都有一个 记录器 ,可以使用如下:
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)
在上面的代码中,记录器是使用Spider的名字创建的,但是您可以使用Python提供的任何自定义记录器,如以下代码所示:
import logging import scrapy logger = 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设置可以通过传递命令行参数来覆盖,如下表所示:
序号 | 命令和说明 |
---|---|
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 (dict, None) 它创建并配置根记录器的处理程序。默认情况下,它是 _无_ 。 |
2 | install_root_handler (bool) 它指定安装根日志记录处理程序。默认情况下,它是 _True_ 。 |
上述功能 -
- 通过Python标准日志记录路由警告和扭曲的日志记录。
- 将Scroll的DEBUG和ERROR级别分配给Twisted记录器。
- 如果LOG_STDOUT设置为true,则将stdout路由到日志。
使用 settings 参数可以覆盖默认选项。如果未指定设置,则使用默认值。当install_root_handler设置为true时,可以为根记录器创建处理程序。如果它设置为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 )
下一章:Scrapy 统计收集
Scrapy统计收集:Stats Collector是Scrapy提供的一种工具,用于以键/值的形式收集统计信息,并使用Crawler API(Crawler提供对所有Scrapy核心组件的访问权限)访问它。统计收集器为每个蜘蛛提供一个统计 ...