日志记录关闭烧瓶终端输出

Logging turns off flask terminal output

我有一个烧瓶 app.py,在应用程序中我有一个 write_to_db.py 脚本。 我将日志记录添加到一个包罗万象的装饰器,现在 flask 不向终端输出任何日志记录,我的 VS Code 调试器也不起作用。

当我查看 error.log 文件时,我只看到如下基本输出:

Running on http://127.0.0.1:7900/ (Press CTRL+C to quit)

import logging

logging.basicConfig(filename='eror.log', level=os.environ.get("LOGLEVEL", "CRITICAL"))

def catch_all_decorator(f):
    def wrapper(*args, **kwargs):
        try:
            f(*args, **kwargs)
            return "LOADED"
        except Exception as e:
            logging.info(e)
            logging.exception("STACK TRACE")
            return "FAIL"

我需要记录堆栈跟踪数据并且仍然可以在终端中看到它。

您 over-written 您的默认 STDOUT 处理程序 logging.basicConfig(filename='eror.log', level=os.environ.get("LOGLEVEL", "CRITICAL"))

Running on http://127.0.0.1:7900/ (Press CTRL+C to quit) - 你看到这个是因为它实际上是一个 "print()" 输出而不是日志输出。

在这里试试这个: logging.basicConfig(level=os.environ.get("LOGLEVEL", "CRITICAL"), handlers=[logging.FileHandler("error.log"), logging.StreamHandler()])