• Scrapy 教程(九)-日志系统


    最新版本的 scrapy 已经废弃了 scrapy.log 的使用,赞成显示调用python标准日志记录。

    Python 内建日志系统

    import logging
    
    ### python 内建 log模块
    
    
    # 发布日志的快捷方式
    logging.warning('warn test1')                       # WARNING:root:warn test1
    
    # 将日志级别作为参数
    logging.log(logging.WARNING, 'warn test2')          # WARNING:root:warn test2
    
    
    ##  利用 “记录器” 封装日志,记录器可以独立配置,并且允许层次结构
    
    # 默认使用根记录器,它是一个顶级记录器【如上面例子】
    logger = logging.getLogger()                        # 显示获取根记录器
    logging.warning('warn test3')                       # WARNING:root:warn test3
    
    # 自定义记录器
    logger = logging.getLogger('mylogger')
    logger.warning('warn test4')                        # WARNING:mylogger:warn test4
    
    # 用当前模块的路径定义记录器
    logger = logging.getLogger(__name__)
    logger.warning('warn.test5')                        # WARNING:__main__:warn.test5

    Scrapy 日志系统

    方式一:Spider 实例提供的logger方法

    def parse(self, response):
            self.logger.info('download success')

    方式二:自定义日志记录器

    import logging
    import scrapy
    
    logger = logging.getLogger('mycustomlogger')
    
    class MySpider(scrapy.Spider):
    
        name = 'myspider'
        start_urls = ['https://scrapinghub.com']
    
        def parse(self, response):
            logger.info('mydeflog  success')

    这两种方式生成的日志记录在系统命令中


    日志记录配置

    若要生成日志文件,需要在setting中设置

    LOG_FILE = 'tq2345.log'
    LOG_LEVEL = 'DEBUG'

    settings 配置 日志系统

    • LOG_ENABLED    默认为 True,是否启用日志
    • LOG_ENCODING    默认为 utf8,日志编码
    • LOG_FILE        默认为 None,记录日志的文件名
    • LOG_FORMAT      默认为 %(asctime)s [%(name)s] %(levelname)s: %(message)s,格式化日志消息
    • LOG_DATEFORMAT    默认为 %Y-%m-%d %H:%M:%S,格式化日期
    • LOG_LEVEL       默认为 DEBUG,日志级别
    • LOG_STDOUT      默认为 False,如果 True ,进程的所有标准输出(和错误)都将重定向到日志。
    • LOG_SHORT_NAMES    默认为 False,如果 True 日志只包含根路径。如果设置为 False 然后显示负责日志输出的组件

    命令行配置日志

    利用项目命令配置日志

    scrapy crawl spidername --logfile   log.log

    经测试,如果 settings 和 命令行 同时对日志进行配置,以命令行为准

    也可以设置其他配置,具体请百度

    参考资料:

    https://www.osgeo.cn/scrapy/topics/logging.html#topics-logging-settings

  • 相关阅读:
    4.Windows下安装ZooKeeper
    3. ZAB与Paxos算法的联系与区别。
    2. ZooKeeper的ZAB协议。
    1. 初识ZooKeeper。
    27. Spring Boot 部署与服务配置
    26.SpringBoot事务注解详解
    25.Spring @Transactional工作原理
    24. Spring Boot 事务的使用
    罗辑思维CEO李天田:我们是这样玩儿公司的
    mysql中char,varchar与text类型的区别和选用
  • 原文地址:https://www.cnblogs.com/yanshw/p/10916808.html
Copyright © 2020-2023  润新知