首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Waitress、Flask和Python将请求记录到文件中

使用Waitress、Flask和Python将请求记录到文件中
EN

Stack Overflow用户
提问于 2019-11-12 23:14:35
回答 2查看 2.3K关注 0票数 6

我需要将http请求记录到运行Flask应用程序的女服务员服务器中的一个文件。我想将Flask应用程序与服务器分开,所以我创建了一个文件

myapp_waitress.py

代码语言:javascript
复制
from myflaskapp import app
from waitress import serve
from paste.translogger import TransLogger
import logging.config
import os

BASE_DIR = os.getcwd()
log_ini_file = os.path.join(BASE_DIR, "mylog.ini")

logging.config.fileConfig(log_ini_file)
logger = logging.getLogger('waitress')

serve(TransLogger(app, setup_console_handler=False))

并运行服务生服务器,如下所示

代码语言:javascript
复制
python myapp_waitress.py

我应该在mylog.ini文件中放入什么内容才能让服务员将请求记录到文件中?我已经读过https://docs.pylonsproject.org/projects/waitress/en/stable/logging.html好几次了,但是作为一个pythonist新手,我不能理解它。我想要的是一个简单的例子,文件日志从女服务员。

EN

回答 2

Stack Overflow用户

发布于 2021-05-06 19:05:08

这是我的配置文件

代码语言:javascript
复制
[loggers]
keys=root

[handlers]
keys=logging_handler

[formatters]
keys=simple_formatter

[logger_root]
level=INFO
handlers=logging_handler

[handler_logging_handler]
formatter=simple_formatter
class=handlers.RotatingFileHandler
maxBytes=31457280
level=INFO
args=('yourlogfile.log',)

[formatter_simple_formatter]
format=%(asctime)s %(levelname)s %(name)s %(threadName)s : %(message)s
datefmt=

您需要定义一个处理程序,该处理程序写入可以在args参数中指定的日志文件。

或者,如果您不想使用配置文件,可以直接在基本配置中定义它,如下所示:

代码语言:javascript
复制
logging.basicConfig(
    filename='yourlogfile.log', 
    level=logging.INFO,
    ...
)
票数 0
EN

Stack Overflow用户

发布于 2019-11-13 00:46:56

不确定这是否适用于您的情况,但Flask提供了一个装饰器函数来记录请求

代码语言:javascript
复制
from flask import request

@app.before_request
def log_the_request():
    logger(request)
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58821530

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档