美文网首页
Scrapy 如何设置日志

Scrapy 如何设置日志

作者: Paycation | 来源:发表于2018-05-06 11:52 被阅读2339次

    Logging 模块

    刚开始接触的时候,我看官方文档只说了怎么设置日志,没有讲去哪里看日志。然后参考了 python 关于 logging 的文档,我发现可以自定义一个输出的文件。

    # 在你需要输出日志的地方设置,比如 your_spider.py
    import logging
    # level 表示级别
    logging.basicConfig(filename='example.log',level=logging.DEBUG)
    

    级别的作用

    首先,根据严重程度排序:DEBUG < INFO < WARNING < ERROR < CRITICAL

    具体每个级别表示什么含义可以按照自己的习惯来处理。如果设置 level=logging.DEBUG,那么以上所有的信息都会被输出到日志。如果设置级别为WARNING,那么只有WARNING及以上会输出到日志。

    logging.basicConfig(filename='example.log',level=logging.INFO)
    logging.debug('This message won\'t go to the log file')
    logging.info('This should')
    logging.warning('And this, too')
    

    运行结果:

    INFO:root:This should
    WARNING:root:And this, too
    

    相关配置

    日志来源

    INFO:scrapy.core.engine:Spider opened
    ...
    DEBUG:scrapy.extensions.telnet:Telnet console listening on 127.0.0.1:6026
    WARNING:root:The failed "info".
    

    Scrapy 的日志中会显示日志的来源,即来自 scrapy 还是来自 root。

    写入模式

    默认情况下是 a 模式,也就是新日志会直接添加到旧日志后面。有时候调试的时候希望日志文件干净一点,可以用新日志覆盖旧日志,修改成 w 模式:

    logging.basicConfig(filename='example.log', filemode='w', level=logging.DEBUG)
    

    日期与时间

    如果希望在每条日志前面加具体的时间,可以加入一个参数:

    logging.basicConfig(format='%(asctime)s %(message)s', datefmt='%m/%d/%Y %I:%M:%S %p')
    

    可以任意自定义,和 time 模块的写法相同。

    更多请参考:

    Python3 Logging 文档

    Scrapy Logging 文档

    相关文章

      网友评论

          本文标题:Scrapy 如何设置日志

          本文链接:https://www.haomeiwen.com/subject/tjturftx.html