簡體   English   中英

Loguru 停止在生產中記錄燒瓶異常

[英]Loguru stops logging flask exceptions in production

我正在使用 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)

想通了這個問題。 默認情況下,使用 werkzeug 開發服務器時,它使用的是 logs/events.log 文件。 當我將應用程序部署到 apache 服務器時,它重新路由了本來放置在這里的日志,並將它們與 apache 服務器日志一起放入

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM