Loguru停止记录生产中的烧瓶异常

时间:2020-01-29 18:51:50

标签: python flask

我正在使用Loguru来处理Flask Rest API中的日志记录。在本地测试应用程序时,其日志记录完全符合预期。当我将应用程序部署到运行apache的linux服务器时,日志记录停止。我可以使用python app.py在服务器上手动运行该应用程序,并且日志记录可以再次运行,但这只会加速开发服务器。

from flask import Flask
from loguru import logger
import logging
import os


class InterceptHandler(logging.Handler):
    def emit(self, record):
        # Retrieve context where the logging call occurred, this happens to be in the 6th frame upward
        logger_opt = logger.opt(depth=6, exception=record.exc_info)
        logger_opt.log(record.levelno, record.getMessage())


# create the Flask application
app = Flask(__name__)

logger.add(
    'logs/events.log',
    level='DEBUG',
    format='{time} {level} {message}',
    backtrace=True,
    rotation='5 MB',
    retention=9
)

app.logger.addHandler(InterceptHandler())
logging.basicConfig(handlers=[InterceptHandler()], level=20)

if __name__ == '__main__':
    app.run(debug=False)

1 个答案:

答案 0 :(得分:2)

找出问题所在。默认情况下,使用werkzeug开发服务器时,它使用的是logs / events.log文件。当我将应用程序部署到apache服务器时,它重新路由了应该放在这里的日志,并将它们与apache服务器日志一起放入