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

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

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

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

日志配置概述

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

编程方式配置日志

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

import logging
import logging.handlersdef 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添加到Loggerlogger.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 jsondef 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.lryc.cn/news/296548.html

相关文章:

  • Python_百度贴吧评论情感分析
  • 如何运行心理学知识(心流)来指导工作和生活
  • 精简还是全能?如何在 Full 和 Lite 之间做出最佳选择!关于Configuration注解的Full模式与Lite模式(SpringBoot2)
  • springboot微信小程序uniapp学习计划与日程管理系统
  • 236.二叉树的最近公共祖先
  • ETL是什么,有哪些ETL工具?就业前景如何?
  • 无人机系统组装与调试,多旋翼无人机组装与调试技术详解,无人机飞控系统原理
  • Log360,引入全新安全与风险管理功能,助力企业积极抵御网络威胁
  • 【开源】JAVA+Vue.js实现高校实验室管理系统
  • Flink CDC 与 Kafka 集成:Snapshot 还是 Changelog?Upsert Kafka 还是 Kafka?
  • 极智一周 | 国产CPU系列汇总、鲲鹏、飞腾、平头哥 And so on
  • PgSQL技术内幕 - case when表达式实现机制
  • Android9~Android13 某些容量SD卡被格式化为内部存储时容量显示错误问题的研究与解决方案
  • 音视频色彩:RGB/YUV
  • MySQL之密码策略和用户授权
  • 电脑通电自启动设置
  • hive表加字段
  • 从零构建Hugo主题 - I
  • 【HarmonyOS应用开发】HTTP数据请求(十四)
  • MongoDB聚合: $sortByCount
  • FY-SA-20237·8-AI‘sIQ
  • react将选中文本自动滑动到容器可视区域内
  • Rust语言入门小结(第1篇)
  • 前端实现支付跳转以及回跳
  • 黑豹程序员-封装组件-Vue3 setup方式子组件传值给父组件
  • PySpark(三)RDD持久化、共享变量、Spark内核制度,Spark Shuffle、Spark执行流程
  • PCIE Order Set
  • nginx upstream server主动健康检测模块ngx_http_upstream_check_module 使用和源码分析(下)
  • 基于SSM的网络在线考试系统(有报告)。Javaee项目。ssm项目。
  • 【Flink状态管理(二)各状态初始化入口】状态初始化流程详解与源码剖析