Я собираюсь написать приложение для колб для чего-то очень тривиального ... и я наткнулся на контрольно-пропускной пункт в моей практике ведения журналов.
Это мое простое приложение для фляги, я написал это, чтобы объяснить проблему, с которой столкнулся и застрял на некоторое время, пытаясь выяснить, что происходит с python-logging & flask.
# standard
from flask import Flask
from flask_restful import Api
import logging
import json
# logging config
log_fmt = "%(asctime)s %(levelname)s %(process)d %(filename)s %(funcName)s %(message)s"
logging.basicConfig(
filename="test.log",
filemode="w",
format=log_fmt,
level=logging.DEBUG
)
# create an object of flask (flask is a web framework)
app = Flask(__name__)
api = Api(app)
# health check /
@app.route("/", methods=['GET'])
def default():
logging.debug("/ request received")
out_dict = {
"hello": "world"
}
logging.debug("/ response" + str(out_dict))
return json.dumps(out_dict)
# main function, entry point
if __name__ == "__main__":
# invokes src and runs the application
logging.debug("starting")
# COMMENTING below - gets me the log file! Whats happening with flask & logging?
app.run(host="0.0.0.0", port=7001, debug=True)
logging.debug("stopping")
Теперь этот шаблон я обычно использую, когда мне нужно войти. Но когда я применяю этот шаблон ведения журнала вместе с app.run(..)
, файл журнала никогда не создается. Я не могу понять, почему это происходит.
Но наоборот .. если я прокомментирую app.run(..)
, файл журнала будет создан с соответствующими журналами отладки, которые у меня есть.
Я изо всех сил пытался понять это - и я приземлился на встроенный обработчик журнала колбы, но, глядя на его реализацию, он присоединяется к самому модулю регистрации. Так что все это все еще не имеет смысла. Мы будем благодарны за любую помощь или направление.