Loguru прекращает регистрировать flask исключений на производстве - PullRequest
2 голосов
/ 29 января 2020

Я использую Loguru для обработки входа в мой flask остальные API. При локальном тестировании приложения оно регистрируется точно так, как ожидалось. Когда я развертываю свое приложение на моем linux сервере, работающем apache, регистрация прекращается. Я могу запустить приложение вручную на сервере, используя 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 Ответ

1 голос
/ 29 января 2020

Разобрался с проблемой. По умолчанию, используя сервер разработчика werkzeug, он использовал файл logs / events.log. Когда я развернул приложение на сервере apache, оно перенаправило журналы, которые были бы размещены здесь, и поместило их в серверные журналы apache

.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...