我只是在与Flask应用程序一起使用Logging。使用基本的“ Hello world”程序进行测试。我不能用发出请求的IP,标头等来编写上下文日志。
仅将基本的“ werkzeug”日志写入日志文件。代码中为按照格式
获取日志所需的任何更改from flask import Flask,request
from flask_restful import Resource, Api
import logging
app = Flask(__name__)
api = Api(app)
class HelloWorld(Resource):
def get(self):
return {'hello': 'world'}
api.add_resource(HelloWorld, '/')
if __name__ == '__main__':
import logging
class ContextualFilter(logging.Filter):
def filter(self, log_record):
log_record.url = request.path
log_record.method = request.method
log_record.ip = request.environ.get("REMOTE_ADDR")
log_record.headers = request.headers
return True
context_provider = ContextualFilter()
app.logger.addFilter(context_provider)
import logging
logging.basicConfig(filename='error.log', level=logging.DEBUG)
app.run(host="0.0.0.0")
app.run(debug=True)
error.log文件具有基本日志,例如“ INFO:werkzeug:127.0.0.1--[29 / May / 2019 16:39:37]“ GET / HTTP / 1.1” 200-“寻找HTTP日志。