gpt4 book ai didi

python - 如何调试/记录 wsgi python 应用程序?

转载 作者:太空狗 更新时间:2023-10-30 01:16:44 26 4
gpt4 key购买 nike

我试过这个:

#!/usr/bin/python    

from wsgiref.simple_server import make_server
from cgi import parse_qs, escape
import logging
import os
import sys

html = """
<html>
<body>
<form method="post" action="parsing_post.wsgi">
<p>
Age: <input type="text" name="age">
</p>
<p>
Hobbies:
<input name="hobbies" type="checkbox" value="software"> Software
<input name="hobbies" type="checkbox" value="tunning"> Auto Tunning
</p>
<p>
<input type="submit" value="Submit">
</p>
</form>
<p>
Age: %s<br>
Hobbies: %s
</p>
</body>
</html>
"""

def application(environ, start_response):

# the environment variable CONTENT_LENGTH may be empty or missing
try:
request_body_size = int(environ.get('CONTENT_LENGTH', 0))
except (ValueError):
request_body_size = 0

# When the method is POST the query string will be sent
# in the HTTP request body which is passed by the WSGI server
# in the file like wsgi.input environment variable.
logger = logging.getLogger(__name__)
request_body = environ['wsgi.input'].read(request_body_size)
d = parse_qs(request_body)


age = d.get('age', [''])[0] # Returns the first age value.
hobbies = d.get('hobbies', []) # Returns a list of hobbies.

# Always escape user input to avoid script injection
age = escape(age)
hobbies = [escape(hobby) for hobby in hobbies]

response_body = html % (age or 'Empty',
', '.join(hobbies or ['No Hobbies']))

status = '200 OK'

response_headers = [('Content-Type', 'text/html'),
('Content-Length', str(len(response_body)))]
start_response(status, response_headers)

return [response_body]

但我不知道它在哪里记录。我正在尝试在网页或文件/var/log/apache2/myapp.log 中显示/记录值

执行此操作的最佳方法是什么?

任何答案将不胜感激。

最佳答案

请注意,上面的代码实际上不会产生任何日志,因为您没有调用任何 logger.log() 变体 - 但我想这不是重点。

如果您使用 apache/mod_wsgi 运行您的代码,最简单的解决方案是配置您的记录器以使用 StreamHandler(参见 http://docs.python.org/howto/logging.html#configuring-logging)记录到 sys.stderr,并定义错误日志路径,名称和级别在你的 apache conf 中(注意,默认的 apache 行为是只记录“错误级别”消息)。

关于python - 如何调试/记录 wsgi python 应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11309840/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com