Python爬虫基础教程(11)Python标准库logging模块之自定义模块myLg:告别print!偷懒黑科技:3行代码让你的爬虫日志会“说话”

一、爬虫狗的悲惨世界:谁没被print坑过?

夜深人静,你正在疯狂爬取某个网站的数据。突然,程序卡住了。你习惯性地翻看日志,却发现满屏都是:

正在爬取第1页...
正在爬取第2页...
数据保存成功
正在爬取第3页...
遇到验证码!
...(后面是999+行无关信息)

等等!“遇到验证码!”——这个关键错误被淹没在信息的海洋里,等你发现时,IP已经被封了。

这就是大多数爬虫新手(甚至一些老手)的日常:用print打天下。print就像是你家里那个只会说“饭好了”、“水开了”的笨拙助理,关键时刻永远给不了你想要的信息。

二、logging:Python内置的“智能秘书”

是时候请出Python标准库中的隐藏大佬——logging模块了。如果说print是个实习生,那logging就是拥有博士学位的专业秘书。

logging的超级技能:

  • 分级管理:DEBUG、INFO、WARNING、ERROR、CRITICAL,重要程度一目了然
  • 多路输出:同时输出到控制台、文件、邮件,甚至网络
  • 灵活格式:时间、文件名、行号、自定义信息,想要什么有什么
  • 自动分割:按时间、按文件大小,告别单个巨型日志文件

但是!原生的logging配置起来稍微有点复杂,这也是为什么我们要打造自己的“瑞士军刀”——myLg模块。

三、手把手打造你的日志神器myLg

3.1 设计目标:我们想要的理想日志

在开始造轮子前,先想清楚我们要什么:

  1. 简单调用:3行代码搞定配置
  2. 彩色控制台:错误红色、警告黄色、信息绿色
  3. 文件记录:自动按日期分割日志文件
  4. 爬虫特化:专门为爬虫场景优化

3.2 核心代码实现

创建一个myLogger.py文件:

import logging
import os
from logging.handlers import TimedRotatingFileHandler
import colorlog
import sys

class MyLogger:
    def __init__(self, name='mySpider', log_level='DEBUG', file_path='./logs/'):
        """
        爬虫专用日志模块
        :param name: 日志器名称
        :param log_level: 日志级别
        :param file_path: 日志文件路径
        """
        self.logger = logging.getLogger(name)
        self.logger.setLevel(getattr(logging, log_level.upper()))
        
        # 避免重复添加handler
        if not self.logger.handlers:
            self._setup_console_handler()
            self._setup_file_handler(file_path)
    
    d
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

值引力

持续创作,多谢支持!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值