
Python logging模块详解与应用示例
67KB |
更新于2024-09-02
| 49 浏览量 | 举报
收藏
Python的`logging`模块是用于生成日志的内置库,对于任何规模的项目,日志管理都是必不可少的工具,尤其在排查错误和监控系统状态时。`logging`模块提供了多种级别的日志记录,包括`CRITICAL`(50)、`ERROR`(40)、`WARNING`(30)、`INFO`(20)和`DEBUG`(10),这使得开发者可以根据需要调整日志的详细程度。
`logging.basicConfig()`函数是初始化日志配置的便捷方法。这个函数接受多个参数,如:
- `filename`:指定要写入日志的文件名。当指定了这个参数,`logging`模块将创建一个`FileHandler`,日志信息会被记录在该文件中。
- `filemode`:定义打开文件的方式,通常设置为“w”(写入)或“a”(追加)。
- `format`:设定日志消息的格式,可以包含诸如`%(levelname)s`这样的占位符来动态插入日志信息。
- `datefmt`:定义日期时间的格式,遵循`strftime`时间格式化规则。
- `level`:设置根日志器的级别,决定哪些级别及以下的日志会被处理。
- `stream`:创建一个`StreamHandler`,默认为`sys.stderr`,也可以指向`sys.stdout`或其他文件对象。如果同时指定了`filename`和`stream`,则`stream`参数将被忽略。
`format`参数中包含的一些占位符有特殊的含义:
- `%(name)s`:记录日志的logger的名称。
- `%(levelno)s`:日志级别的数值形式。
- `%(levelname)s`:日志级别的文本描述,如“DEBUG”,“INFO”等。
- `%(pathname)s`:调用日志函数的模块的完整路径。
- `%(filename)s`:仅包含调用日志函数的模块的文件名。
- `%(module)s`:调用日志函数的模块名。
- `%(funcName)s`:调用日志函数的函数名。
- `%(lineno)d`:日志输出所在代码行号。
- `%(created)f`:当前时间(UNIX时间戳)。
- `%(relativeCreated)d`:从logger创建以来的毫秒数。
- `%(asctime)s`:格式化的当前时间,例如“2003-07-08 16:49:45,896”。
- `%(thread)d`:线程ID。
- `%(threadName)s`:线程名。
- `%(process)d`:进程ID。
- `%(message)s`:实际的日志消息内容。
下面是一个简单的示例,展示了如何使用`logging`打印日志到标准输出:
```python
import logging
logging.basicConfig(level=logging.DEBUG, format='%(asctime)s - %(name)s - %(levelname)s - %(message)s')
logging.debug('这是一个调试日志消息')
logging.info('这是一个信息日志消息')
logging.warning('这是一个警告日志消息')
logging.error('这是一个错误日志消息')
logging.critical('这是一个严重错误日志消息')
```
在这个例子中,我们设置了日志级别为`DEBUG`,因此所有级别及以上的日志都会被打印。每个日志消息都会包含时间戳、logger名称、日志级别和消息本身。
通过理解并灵活运用`logging`模块,开发者可以轻松地管理和跟踪应用程序的状态,这对于开发、调试以及维护软件项目至关重要。确保正确配置日志级别和格式,可以帮助在遇到问题时快速定位和解决问题,从而提高开发效率。
相关推荐





















weixin_38611812
- 粉丝: 4
最新资源
- DCBot.net实现淘宝与1688折扣自动获取神器
- GitHub评论GIF插件:快速搜索和插入GIF表情包
- DevOps演示项目:从构建到部署全流程
- CircleCI工作流程设置指南与实践
- IP定位查询插件,便捷获取服务器及IP地理位置
- GitHub Pages博客:机器学习与自然语言处理的个人空间
- DaSE111研讨会:创新数据存储与区块链技术论文集
- Bullfrog:融合Frogger和Alien Invasion的游戏项目
- 淘宝购物服务扩展TaoJet-crx插件发布
- Jalangi2-crx:Chrome扩展实现动态JavaScript分析
- 简易区块链技术:轻松存储各类数据解决方案
- 运算放大器应用与电路集成的分析
- cmd-r's log-crx:页面加载时自动截图的扩展插件
- Jenkins Blue Ocean Docker容器启动教程
- 自定义暗黑主题的Google™:trade_mark:-crx插件发布
- GitHandler: PHP环境下Git包装器使用指南
- 代理自动切换神器:Proxy Pac Switcher-crx插件
- Trofa地区Covid19统计项目展示与分析
- Docker与Flask在Pycharm中的应用教程
- npmhub-crx插件:GitHub仓库npm依赖性探索工具
- Subhub-crx插件: 在Github快速打开Sublime Text工具
- Paste To VM: 实现文本跨平台快速粘贴到虚拟机的crx插件
- Tamper Chrome扩展工具-浏览器请求修改神器
- 在线视频会议屏幕共享扩展程序:Interush开发