教你快速入门:Python Logging 使用指南( 二 )


接着 , 我们创建两个日志处理器 , 分别用于 console 和 file 形式的输出 , 并设置各自的日志等级 。 这可以减少控制台输出的开销 , 转而在文件中输出 。 这方便了以后的调试 。
教你快速入门:Python Logging 使用指南文章插图
对输出日志进行格式化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开发工程师 , 这里有我自己整理了一套最新的python系统学习教程 , 包括从基础的python脚本到web开发、爬虫、数据分析、数据可视化、机器学习等 。 想要这些资料的可以关注小编 , 并私信“01”领取 。