Python内置日志模块源码分析和进阶用法 |
您所在的位置:网站首页 › python里面or的用法 › Python内置日志模块源码分析和进阶用法 |
概述
日志是在程序运行过程中进行事件追踪的方式,通过向程序引入日志模块可以使开发者方便地了解到特定的事件是否发生,以及事件发生时相关的信息。 本文假定你已经了解日志模块的基本使用(如通常博客、教材所介绍),想要定制化拓展你的日志功能(如定制化的日志持久化,在日志中记录特定属性(区分于message)等),或许本文的部分内容会对你有帮助。 本文介绍以下内容: python中内置的logging模块中关于日志记录的关键类设计(如日志事件对象LogRecord,日志处理类/接口Handler) 如何将日志记录到数据库中(以MySQL为例) 如何拓展日志事件记录字段 如何优雅地使用logging模块 源码分析 logging模块设计从__all__这一特殊变量即可窥见logging模块有哪些主要的类与变量: Logger、Handler、Filter、Formatter、LogRecord等。 重要常量及其相关操作 日志级别 若干个正整数集合定义了我们在程序中常用的日志级别
模块架构图 LogRecord:日志事件对象 LogRecord类表示一个被记录的事件 LogRecord实例会在需要记录某些东西时被创建,包含需要记录事件的所有相关信息。日志的主要信息在于msg和args,LogRecord实例也包括了实例被创建的时间、创建过程被调用 的源代码模块、文件名、行数等信息。 Handler: 日志处理类Handler类的实例负责把日志时间分发到特定的目的地 Handler类 作为一个接口,其应该实现的功能为:把日志时间分发到特定的目的地。Handler可以选择性地使用格式器(Formatter)实例将日志记录格式化为期望的样式,默认情况下只记录原始记录信息(record.message) 并发安全性设计 数据库持久化拓展 设计模式推荐 参考资料 Python Logging: A Stroll Through the Source Code Logging HOWTO CPython source code of logging module |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |