Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将请求记录到waiteress、Flask和Python的文件中_Python_Logging_Flask_Waitress - Fatal编程技术网

将请求记录到waiteress、Flask和Python的文件中

将请求记录到waiteress、Flask和Python的文件中,python,logging,flask,waitress,Python,Logging,Flask,Waitress,我需要将http请求记录到运行Flask应用程序的女服务员服务器中的文件中。我想将Flask应用程序与服务器分离,因此创建了一个文件 myapp_waitress.py 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

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

myapp_waitress.py

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))
然后像这样运行服务员服务器

python myapp_waitress.py

我应该在mylog.ini文件中放入什么内容,以使服务员将请求记录到文件中?我已经读了好几遍了,但作为一个新的蟒蛇学家,我对它没有多大的理解。我想要的是一个简单的女服务员记录文件的例子。

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

from flask import request

@app.before_request
def log_the_request():
    logger(request)
这是我的配置文件

[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参数中指定

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

logging.basicConfig(
    filename='yourlogfile.log', 
    level=logging.INFO,
    ...
)

谢谢这是很好的知道,但不完全是我要找的。我希望wsgi服务器进行日志记录,而不是在它下面运行的应用程序。