当前位置: 首页 > article >正文

精通Python爬虫:掌握日志配置

源码分享
https://docs.qq.com/sheet/DUHNQdlRUVUp5Vll2?tab=BB08J2

在开发Python爬虫时,日志记录是一个不可或缺的特性,它帮助我们捕捉运行时信息、调试代码和监控爬虫的健康状况。合理地配置日志系统是提高爬虫可维护性的关键。本篇技术博客将详细介绍如何在Python爬虫中配置日志系统,并提供详细的代码案例,帮助你构建一个强大、灵活的日志环境。

日志配置概述

Python的​​logging​​模块提供了一个灵活的日志系统,可以通过代码或者配置文件来配置。使用编程方式配置日志比较灵活,可以在运行时动态修改配置;而配置文件方式则更加简洁明了,便于管理和维护。

编程方式配置日志

以下是一个通过代码配置日志系统的例子,我们将配置一个将日志信息输出到控制台和文件的环境。

import logging
import logging.handlers

def setup_logger():
    # 创建Logger对象
    logger = logging.getLogger('spider')
    logger.setLevel(logging.DEBUG)  # 设置日志级别

    # 创建一个流处理器Handler,用于输出到控制台
    console_handler = logging.StreamHandler()
    console_handler.setLevel(logging.WARNING)  # 控制台只输出警告及以上级别的日志

    # 创建一个文件处理器Handler,用于输出到文件
    file_handler = logging.handlers.RotatingFileHandler(
        'spider.log', maxBytes=10*1024*1024, backupCount=5
    )
    file_handler.setLevel(logging.DEBUG)  # 文件记录所有级别的日志

    # 定义日志格式
    formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
    console_handler.setFormatter(formatter)
    file_handler.setFormatter(formatter)

    # 将Handler添加到Logger
    logger.addHandler(console_handler)
    logger.addHandler(file_handler)

# 调用函数配置Logger
setup_logger()

# 获取Logger
logger = logging.getLogger('spider')
logger.info('Info message')
logger.error('Error message')

配置文件方式配置日志

Python允许使用配置文件(通常是JSON或YAML格式)来配置日志系统。以下是一个使用JSON格式配置文件的例子。

首先,创建一个名为​​logging_config.json​​的配置文件:

{
    "version": 1,
    "disable_existing_loggers": false,
    "formatters": {
        "standard": {
            "format": "%(asctime)s - %(name)s - %(levelname)s - %(message)s"
        }
    },
    "handlers": {
        "console": {
            "class": "logging.StreamHandler",
            "level": "WARNING",
            "formatter": "standard",
            "stream": "ext://sys.stdout"
        },
        "file": {
            "class": "logging.handlers.RotatingFileHandler",
            "level": "DEBUG",
            "formatter": "standard",
            "filename": "spider.log",
            "maxBytes": 10485760,
            "backupCount": 5
        }
    },
    "loggers": {
        "spider": {
            "level": "DEBUG",
            "handlers": ["console", "file"],
            "propagate": false
        }
    },
    "root": {
        "level": "INFO",
        "handlers": ["console"]
    }
}

然后,加载JSON配置文件配置日志系统:

import logging.config
import json

def setup_logging():
    with open('logging_config.json', 'r') as f:
        config = json.load(f)
        logging.config.dictConfig(config)

# 调用函数配置Logger
setup_logging()

# 获取Logger
logger = logging.getLogger('spider')
logger.debug('Debug message')
logger.critical('Critical message')

结语

正确配置日志对于爬虫项目的成功至关重要,它不仅帮助开发者调试程序,而且在生产环境中监控爬虫活动时发挥着关键作用。无论是通过编程方式还是配置文件,强大的Python ​​logging​​模块都能够满足我们的需求。通过合理的配置,可以确保日志信息的可靠记录与有效管理,为爬虫的稳健运行提供支持。希望本篇博客能帮助你建立一个结构合理、易于管理的日志系统,让你的爬虫项目更加稳固。


http://www.kler.cn/a/232675.html

相关文章:

  • git入门环境搭建
  • zabbix搭建钉钉告警流程
  • 性能测试|JMeter接口与性能测试项目
  • 【Golang】Channel的ring buffer实现
  • 在Java中使用ModelMapper简化Shapefile属性转JavaBean实战
  • MySql结合element-plus pagination的分页查询
  • pycharm deployment 灰色 一直无法点击
  • linux系统定时任务管理
  • 多线程JUC:线程池原理、自定义线程池详细解析
  • 设计模式巡礼:多板适配案例解析与深度重构
  • 熔断机制解析:如何用Hystrix保障微服务的稳定性
  • abap - 发送邮件,邮件正文带表格和excel附件
  • 年底我被裁了,大环境不好?
  • 【芯片设计- RTL 数字逻辑设计入门 14 -- 使用子模块实现三输入数的大小比较】
  • router路由跳转的两种模板2.0版本
  • 2.2-学成在线内容管理之课程分类查询+新增课程
  • Linux 36.2@Jetson Orin Nano之Hello AI World!
  • 蓝桥杯刷题day06——平均
  • Peter算法小课堂—枚举优化
  • 前端工程化之:webpack3-5(css module)
  • Redis(十二)Bigkey
  • Qt信号和槽机制(什么是信号和槽,connect函数的形式,按钮的常用信号,QWidget的常用槽,自定义槽函数案例 点击按钮,输出文本)
  • 基于 Python opencv 的人脸识别的酒店客房入侵系统的检测
  • 电脑服务器离线安装.net framework 3.5解决方案(错误:0x8024402c )(如何确定当前系统是否安装NET Framework 3.5)
  • STM32学习笔记——定时器
  • 力扣36.有效的数独