Python logging库(python日志库)Logger(记录器、收集器、采集器)、Handler(处理器)、Formatter(格式化器)、Log Level(日志级别)
原创Python logging库详解
Python的logging库是一个强盛而灵活的日志记录系统,它可以帮助开发者输出运行时的信息,对于跟踪谬误、监控程序运行状态等都非常实用。logging库首要由四个部分组成:Logger(记录器)、Handler(处理器)、Formatter(格式化器)和Log Level(日志级别)。
1. Logger(记录器)
Logger是日志记录的核心,它暴露了应用程序代码能直接使用的接口。通过Logger,应用程序可以创建日志消息,也可以设置日志级别来过滤掉不重要或不需要的日志信息。
import logging
# 创建一个Logger对象
logger = logging.getLogger('my_logger')
logger.setLevel(logging.DEBUG) # 设置日志级别为DEBUG
# 输出日志信息
logger.debug('这是一个debug信息')
logger.info('这是一个info信息')
2. Handler(处理器)
Handler用于将日志信息发送到指定的目的地,比如控制台、文件或者网络上的其他服务器。一个Logger对象可以通过addHandler方法添加零个或多个Handler对象。
# 创建一个Handler对象,并将其添加到Logger中
console_handler = logging.StreamHandler()
console_handler.setLevel(logging.DEBUG)
logger.addHandler(console_handler)
# 输出日志信息到控制台
logger.info('这条信息将被输出到控制台')
3. Formatter(格式化器)
Formatter用于设置日志信息的最终输出格式。它允许日志信息包含各种各样的信息,如时间戳、日志级别名称、进程名称等。
# 创建一个Formatter对象,并将其设置到Handler中
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
console_handler.setFormatter(formatter)
# 修改日志信息格式后的输出
logger.info('这条信息将按照指定格式输出')
4. Log Level(日志级别)
每个Logger和Handler都有一个日志级别,这个级别决定了日志系统将处理哪些日志信息。日志级别从高到低分别为:CRITICAL、ERROR、WARNING、INFO、DEBUG。
级别 | 数值 | 描述 |
---|---|---|
CRITICAL | 50 | 严重谬误,通常用于严重故障 |
ERROR | 40 | 谬误,用于某些功能不正常工作 |
WARNING | 30 | 警告,用于描述某些意外事件的提示,或者预示一些问题 |
INFO | 20 | 信息,用于常规信息的记录,确认程序按预期运行 |
DEBUG | 10 | 调试,用于详细的诊断信息,通常只在诊断问题时启用 |
使用合适的日志级别可以帮助开发者更有效地过滤和懂得日志信息。
总结
Python的logging库通过以上四个组件为开发者提供了一个灵活且可定制的日志记录系统。懂得这四个部分的工作原理,可以帮助开发者更好地利用logging库,从而更加高效地监控和调试Python应用程序。