如何在Python CGI文件中输出日志信息?

1 投票
1 回答
3959 浏览
提问于 2025-04-17 04:17

我正在用 CGI(Python)作为代理,来解决 AJAX 请求的跨域问题。我想记录每个请求的一些关键信息,比如网址,并把这些信息保存到服务器上的一个文件里。我该怎么做呢?我试过 Python 的日志模块和文件输入输出模块,但在这个环境下似乎都不行。

#!C:/Python25/python.exe -u

import urllib2
import cgi
import sys, os

f = open("./proxy.txt","a")

method = os.environ["REQUEST_METHOD"]
f.write(method + "\n")
if method == "POST":
    qs = os.environ["QUERY_STRING"]
    d = cgi.parse_qs(qs)
    if d.has_key("url"):
        url = d["url"][0]

else:
    fs = cgi.FieldStorage()
    url = fs.getvalue('url')

try:
    y = urllib2.urlopen(url)
f.write(url + "\n")
f.close()
except Exception, E:
    print "Status: 500 Unexpected Error"
    print "Content-Type: text/plain"
    print 
    print "Some unexpected error occurred. Error text was:", E

在客户端发出请求后,proxy.txt 文件还是空的……

1 个回答

1

这可能是因为你使用了相对路径和文件权限的问题...

试着把这一行改成:

f = open("./proxy.txt","a")

改成一个绝对路径,比如:

f = open("C:\Users\foo\Desktop\proxy.txt","a")

确保运行这个cgi脚本的用户有权限写入你选择的绝对路径...

撰写回答