一、什么是 logger(记录器)?
- logger(记录器)是 Python
logging
模块的核心对象,用于产生日志。 - 你可以创建多个 logger,每个 logger 可以有不同的名字、日志级别、处理器(Handler)和格式(Formatter)。
- logger 负责接收日志消息,并将其分发给一个或多个 Handler 进行实际输出。
二、logger 的常用方法
1. getLogger([name])
—— 创建或获取记录器
2. setLevel(level)
—— 设置日志等级
3. addHandler(handler)
—— 添加处理程序
4. removeHandler(handler)
—— 移除处理程序
三、logger 的使用流程
- 获取 logger(
getLogger
) - 设置日志级别(
setLevel
) - 添加 Handler(
addHandler
),可设置不同的输出目标和格式 - 输出日志(如
logger.info()
、logger.error()
等)
四、你的代码详解
import logging
logger = logging.getLogger()
- 这行代码获取了根记录器(root logger)。
- 你可以用
logger
来输出日志,也可以为它添加 Handler、设置日志级别等。
五、logger 与 Handler 的关系
- logger 负责产生日志,Handler 负责处理日志(如输出到文件、控制台等)。
- 一个 logger 可以有多个 Handler,每个 Handler 可以有不同的输出目标和格式。
六、完整示例
import logging
logger = logging.getLogger('mylogger')
logger.setLevel(logging.DEBUG)
console_handler = logging.StreamHandler()
file_handler = logging.FileHandler('app.log', encoding='utf-8')
console_format = logging.Formatter('%(levelname)s: %(message)s')
file_format = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s')
console_handler.setFormatter(console_format)
file_handler.setFormatter(file_format)
logger.addHandler(console_handler)
logger.addHandler(file_handler)
logger.info('普通信息')
logger.error('错误信息')
logger.removeHandler(console_handler)
七、总结
- logger 是日志系统的核心,负责产生日志并分发给 Handler。
- 通过
getLogger
获取 logger,通过 setLevel
设置级别,通过 addHandler
/removeHandler
管理输出目标。 - 灵活配置 logger 和 Handler,可以满足各种复杂的日志需求。
!