Flask中调用导入类的方法时无法输出日志的问题
解决Flask应用中无法输出DEBUG级日志的问题
Python的logging模块默认日志级别为WARNING,只有级别≥WARNING的日志才会被输出。你代码中使用LOG.debug()输出的日志级别低于默认阈值,所以终端不会显示这条日志。
方案1:在base.py中配置日志
修改base.py,添加日志基础配置,将级别设为DEBUG并指定输出规则:
import logging # 配置日志:设为DEBUG级别,输出到终端 logging.basicConfig( level=logging.DEBUG, format='%(asctime)s - %(name)s - %(levelname)s - %(message)s' ) LOG = logging.getLogger(__name__) class MyClass: def my_method(self): LOG.debug("debug logs here")
方案2:在Flask主应用中统一配置
若不想修改base.py,可在主应用启动时统一配置日志:
from flask import Flask from base import MyClass import logging app = Flask(__name__) # 配置根logger级别为DEBUG,所有子logger将继承该设置 logging.basicConfig(level=logging.DEBUG) @app.route("/") def hello_world(): base = MyClass() base.my_method() return "<p>Hello, World!</p>"
补充说明
如果仅需要让base模块输出DEBUG日志,可单独为其配置:
# 可放在主应用或base.py中 LOG = logging.getLogger(__name__) LOG.setLevel(logging.DEBUG) # 添加控制台处理器(确保日志能输出到终端) handler = logging.StreamHandler() LOG.addHandler(handler)
内容的提问来源于stack exchange,提问作者mounir boukhalfa
相关产品推荐
相关产品推荐

