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

【Python 工具人快餐 · 第 6 份】

开袋即食

logging 把「写屏 + 写文件 + 分级」封装成 3 行配置:
• DEBUG / INFO / WARNING / ERROR / CRITICAL 五级过滤
• 支持同时输出到控制台 + 文件,还带时间戳
• 线程安全,多进程也能用


1 行配置 3 连发

import logging, syslogging.basicConfig(level=logging.INFO,format="%(asctime)s [%(levelname)s] %(message)s",handlers=[logging.FileHandler("app.log"),logging.StreamHandler(sys.stdout)])

场景实拍:脚本运行日志自动落盘

需求:脚本每次跑都把 INFO 以上日志写到 app.log,并在终端实时可见。

import logging, requestslogging.info("开始抓取...")
try:r = requests.get("https://example.com", timeout=5)r.raise_for_status()logging.info("抓取成功,长度 %d", len(r.text))
except Exception as e:logging.error("抓取失败:%s", e)

跑完后查看 app.log

2024-06-01 21:10:01 [INFO] 开始抓取...
2024-06-01 21:10:02 [INFO] 抓取成功,长度 1250

升级加料

  1. 按大小切割:from logging.handlers import RotatingFileHandler
  2. 按日期切割:TimedRotatingFileHandler
  3. JSON 日志:python-json-logger 一行换 formatter

打包带走
脚本上线前,先把 print 换成 logging.info
老板要看日志,直接丢 app.log,优雅!

http://www.lryc.cn/news/616017.html

相关文章:

  • Redis缓存穿透、缓存击穿、缓存雪崩
  • 社交与职场中的墨菲定律
  • 故障诊断 | VMD-CNN-LSTM西储大学轴承故障诊断附MATLAB代码
  • vscode uv 发布一个python包:编辑、调试与相对路径导包
  • K8s四层负载均衡-service
  • 《Qt————Tcp通讯》
  • 【自动化运维神器Ansible】playbook案例解析:Tags组件实现任务选择性执行
  • 从DDPM对比学习Diffusion Policy:生成模型到策略学习的演进
  • Java变量的声明规则与Scanner的应用
  • C++基础语法积累
  • 【密码学】8. 密码协议
  • Mysql系列--5、表的基本查询(下)
  • Agent在游戏行业的应用:NPC智能化与游戏体验提升
  • 【数据结构入门】栈和队列的OJ题
  • Shell脚本-其他变量定义
  • vue和react和uniapp的状态管理分别是什么,并且介绍和怎么使用
  • How Websites Work 网站如何运作
  • Vue 事件冒泡处理指南:从入门到精通
  • 五种Excel表格导出方案
  • sqllabs——Less1
  • 前端学习日记 - 前端函数防抖详解
  • 遇到前端导出 Excel 文件出现乱码或文件损坏的问题
  • 打靶日常-upload-labs(21关)
  • Spring Boot配置文件加密详解
  • crc32算法php版----crc32.php
  • 【redis初阶】--------Set 集合类型
  • 如何通过API接口实现批量获取淘宝商品数据?(官方与非官方渠道分享)
  • Linux 路由子系统深度分析:框架、实现与代码路径
  • [Python 基础课程]常用函数
  • X265性能分析开源代码