Scrapy - Logging

描述

记录意味着跟踪事件,事件使用内置记录系统并定义实现应用程序和库的函数和类.记录是一种随时可用的材料,可以使用记录设置中列出的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 logging
logger = 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 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设置可以通过传递来覆盖命令行参数,如下表所示 :

Sr.NoCommand&说明
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 
)