日志级别和输出的关系:
- 日志级别从低到高:
DEBUG < INFO < WARNING < ERROR < CRITICAL
- 控制台输出 (console_handler):
- 设置级别:
setLevel(logging.INFO) - 会输出 INFO 及以上级别的日志
- 即:INFO, WARNING, ERROR, CRITICAL
- 不会输出 DEBUG 级别的日志
- 原因:控制台通常只需要显示重要信息,避免过多调试信息干扰
- 文件输出 (file_handler):
- 设置级别:
setLevel(logging.DEBUG) - 会输出 DEBUG 及以上级别的所有日志
- 即:DEBUG, INFO, WARNING, ERROR, CRITICAL
- 原因:文件适合保存详细的调试信息,方便问题排查
- 举例:
logger.debug("调试信息") # 只写入文件
logger.info("普通信息") # 同时输出到控制台和文件
logger.warning("警告信息") # 同时输出到控制台和文件
logger.error("错误信息") # 同时输出到控制台和文件
logger.critical("严重错误") # 同时输出到控制台和文件
这样的设计满足了不同场景的需求:调试时可以查看详细日志文件,日常运行时控制台只显示重要信息。