我正在使用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)发布于 2020-01-30 03:19:22
弄清楚了问题所在。默认情况下,使用werkzeug dev服务器时,它使用logs/events.log文件。当我将应用程序部署到apache服务器时,它重新路由了本应放在此处的日志,并将它们与apache服务器日志放在一起
https://stackoverflow.com/questions/59973735
复制相似问题