数码知识屋
霓虹主题四 · 更硬核的阅读氛围

Python日志记录库:让程序自己“说话”

发布时间:2025-12-14 17:13:13 阅读:4 次
{"title":"Python日志记录:让程序自己“说话”","content":"

写代码的时候,谁还没遇到过程序跑着跑着就卡住、崩溃或者结果不对的情况?这时候要是能知道它“刚才干了啥”,那该多好。其实,Python 早就给你准备好了这个功能——日志记录

\n\n

为什么不用 print?

\n

很多人一开始调试都靠 print 打印变量,比如 print("进入函数")print(data)。这招在小脚本里还行,可一旦项目变大,满屏都是 print,根本分不清哪些是正常输出,哪些是调试信息。更麻烦的是,上线前还得手动一个个删或注释掉,一不小心漏一个,生产环境就暴露了敏感数据。

\n\n

日志记录库解决了这个问题。它能把不同级别的信息(比如调试、警告、错误)分开处理,还能自动写进文件、按日期切割、保留最近七天的日志,甚至出错了发邮件提醒你。

\n\n

Python 自带 logging 模块就够用

\n

别急着装第三方库,Python 标准库里的 logging 其实很强大。下面是个简单例子:

\n\n
import logging\n\n# 配置日志格式和级别\logging.basicConfig(\n    level=logging.INFO,\n    format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',\n    handlers=[\n        logging.FileHandler('app.log'),\n        logging.StreamHandler()\n    ]\n)\n\nlogger = logging.getLogger(__name__)\n\nlogger.info("应用启动成功")\nlogger.warning("内存使用已超 80%")\nlogger.error("数据库连接失败")
\n\n

运行后,控制台和 app.log 文件都会看到对应信息。错误日志会标红,警告是黄的,看起来一目了然。

\n\n

什么时候该用第三方库?

\n

如果你觉得原生配置太啰嗦,或者想更方便地输出彩色日志、结构化日志(比如 JSON 格式),可以试试 loguru。这个库以“简洁”著称,安装只要一行:

\n\n
pip install loguru
\n\n

然后直接用:

\n\n
from loguru import logger\n\nlogger.add("runtime.log", rotation="1 week")  # 每周一个日志文件\nlogger.debug("这是一条调试消息")\nlogger.info("用户登录成功")
\n\n

不需要繁琐的 handler 配置,连时间戳、颜色高亮都默认安排好了。特别适合快速开发的小项目或工具脚本。

\n\n

真实场景:爬虫出问题了怎么办?

\n

假设你写了个爬虫,每天定时抓天气数据。某天发现没更新,但任务却显示“执行成功”。这时候如果有日志,就能查到:

\n\n
2025-04-05 08:00:02 - weather_spider - INFO - 开始抓取\n2025-04-05 08:00:05 - weather_spider - ERROR - 请求超时,URL: https://api.weather.com/v1\n
\n\n

一眼看出是接口超时,而不是程序崩溃。你可以据此加个重试机制,或者换个时间段再抓。

\n\n

别等到出事才想起日志

\n

很多开发者平时不重视日志,直到线上服务挂了才着急翻记录。其实从第一天写代码起,就应该把日志当成标配。哪怕只是简单的 info 和 error 分级,也能帮你省下大量排查时间。

\n\n

记住,好的程序不是不出错,而是出错时能告诉你“哪里错了、为啥错、怎么复现”。而日志,就是程序跟你沟通的语言。

","seo_title":"Python日志记录库怎么选?logging和loguru实战对比","seo_description":"详解Python中常用的日志记录库,从内置logging到第三方loguru,结合实际场景教你如何高效记录程序运行日志。","keywords":"Python日志记录库,Python logging,loguru使用,Python日志配置,Python开发工具"}