Python Logging 使用指南( 二 )
接着,我们创建两个日志处理器,分别用于 console 和 file 形式的输出,并设置各自的日志等级 。这可以减少控制台输出的开销,转而在文件中输出 。这方便了以后的调试 。
对输出日志进行格式化Logging 不是只用来打印我们自己的信息的 。有时候我们需要打印其他信息,例如时间、日志等级、进程 ID 。因此我们需要对日志进行格式化 。我们来看下面的代码 。
console_format = logging.Formatter('%(name)s - %(levelname)s - %(message)s')file_format = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')console_handler.setFormatter(console_format)file_handler.setFormatter(file_format)复制代码
添加 Handler 之前,我们可以像上面的代码那样设置日志输出的格式 。可以用于设置日志格式的参数远不止这些,你可以访问(docs.python.org/3/library/l…
可重用的代码下面是我在许多应用程序中都用到的代码段 。它可能会对你有所帮助 。
import logginglogger = logging.getLogger('Program Name-Version')logger.setLevel(logging.DEBUG)formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s')consoleHeader = logging.StreamHandler()consoleHeader.setFormatter(formatter)consoleHeader.setLevel(logging.INFO)fileHandler = logging.FileHandler(f"{output}/metabcc-lr.log")fileHandler.setLevel(logging.DEBUG)fileHandler.setFormatter(formatter)logger.addHandler(fileHandler)logger.addHandler(consoleHeader)复制代码
Logging 与多线程有关的特征记住,Logging 模块是线程安全的 。所以除了极少数例外情况(不在本文讨论范围内)使用 Logging 不需要为多线程编写额外的处理逻辑 。
本文虽然短小、简单,但我也希望它对初级程序员有所帮助 。
推荐阅读
- Python+PyQt架构:Model/View结构之QStringListModel编程示例
- 2020年最佳的Python代码编辑器
- 使用python做内网穿透小工具实现花生壳功能!
- python语言实现 十道经典的算法编程题目
- 使用布隆过滤器用于Python网络爬虫URL去重
- 利用python+opencv获取你的身份证信息
- 使用 Python 读取 QQ 消息
- Python大佬手把手教你用wxPython模块编写界面程序
- 深入了解python的3D高级库pyvista
- 汽车车道视频检测:python+OpenCV为主实现