我是cgi和python的新手,所以我犯了不少错误。问题是,如果脚本出现问题,我只是在网页上发生500错误。我可以看到导致错误的唯一方法是通过ssh执行页面,但页面涉及文件上传,所以我无法测试该部分。在网站上记录python错误?
有没有一种方法可以将Python错误输出到文件中?
我是cgi和python的新手,所以我犯了不少错误。问题是,如果脚本出现问题,我只是在网页上发生500错误。我可以看到导致错误的唯一方法是通过ssh执行页面,但页面涉及文件上传,所以我无法测试该部分。在网站上记录python错误?
有没有一种方法可以将Python错误输出到文件中?
有几个选项,使用记录模块的指示,你可以尾巴服务器的错误日志,而且您可以用import cgitb; cgitb.enable()
取决于究竟发生错误cgitb,错误将显示在不同的地方,所以检查所有三个,并使用打印语句和异常块有助于调试您的代码。
通过文件上传,我发现我必须在表单标签中明确声明enctype="multipart/form-data"
,或者它通常会安静地打破。
我还没有得到任何东西,除了500 – mowwwalker 2012-04-20 21:52:52
那些应该肯定会显示在服务器错误日志中的一些信息。通常我发现我忘了通过打印“”“Content-type:text/html”“”或者有语法错误,如果前者,python可能不会引发任何异常,如果后者,它会显示日志类似于'File'/ usr/share/bdot/cgi/call',第15行 status,junk = commands.getstatusoutput('ssh [email protected] pwd ^ SyntaxError:EOL扫描字符串文字' – TaoJoannes 2012-04-20 22:01:38
哇,我被推迟了,Filezilla改变了权限,所以我只好将它们改回来,一旦我做了,我故意破坏了代码来测试它,并且它能够工作,所以我会在下次尝试它,非常感谢! – mowwwalker 2012-04-20 22:06:31
是的。 Python有一个日志模块,它可以让你做你想做的事情。 Here你可以阅读文档,它很容易理解。
发生错误时,仍然没有将任何内容打印到文件中。从ssh,教程中的消息进入文件,但是当我从浏览器中尝试页面时,我仍然只是得到500错误,文件中没有任何内容。 – mowwwalker 2012-04-20 21:48:44
嗯,这不是神奇的。您需要使用日志记录模块和您想要查看的消息(可能是对异常的简要描述,可能是错误的完整跟踪)来记录错误。举例: '尝试: execute_function(个体经营)除例外 ,E: logging.error( '我发现了一个错误,我的主:\ n \ T |%S',E) ' – Omar 2012-04-20 21:54:45
我设置为登录页面顶部并没有记录任何内容。 – mowwwalker 2012-04-20 21:58:17
查看服务器上的日志文件有什么问题? – sarnold 2012-04-20 21:39:52