写代码的时候,谁还没遇到过程序跑着跑着就卡住、崩溃或者结果不对的情况?这时候要是能知道它“刚才干了啥”,那该多好。其实,Python 早就给你准备好了这个功能——日志记录。
\n\n为什么不用 print?
\n很多人一开始调试都靠 print 打印变量,比如 print("进入函数")、print(data)。这招在小脚本里还行,可一旦项目变大,满屏都是 print,根本分不清哪些是正常输出,哪些是调试信息。更麻烦的是,上线前还得手动一个个删或注释掉,一不小心漏一个,生产环境就暴露了敏感数据。
日志记录库解决了这个问题。它能把不同级别的信息(比如调试、警告、错误)分开处理,还能自动写进文件、按日期切割、保留最近七天的日志,甚至出错了发邮件提醒你。
\n\nPython 自带 logging 模块就够用
\n别急着装第三方库,Python 标准库里的 logging 其实很强大。下面是个简单例子:
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。这个库以“简洁”著称,安装只要一行:
pip install loguru\n\n然后直接用:
\n\nfrom loguru import logger\n\nlogger.add("runtime.log", rotation="1 week") # 每周一个日志文件\nlogger.debug("这是一条调试消息")\nlogger.info("用户登录成功")\n\n不需要繁琐的 handler 配置,连时间戳、颜色高亮都默认安排好了。特别适合快速开发的小项目或工具脚本。
\n\n真实场景:爬虫出问题了怎么办?
\n假设你写了个爬虫,每天定时抓天气数据。某天发现没更新,但任务却显示“执行成功”。这时候如果有日志,就能查到:
\n\n2025-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开发工具"}