0

我正在开发一个使用 Python web.py 的网站。有一个表单,用户输入输入,当点击提交按钮时,使用下面显示的 .getJSON JQuery 函数调用(匹配)python 页面。

function buildMatches(input){
    $.getJSON("/matches", {e:input}, function(json){
      //Returned JSON object is worked on
   }
}

“匹配”python 页面从数据库中获取一个值,运行一些字符串 reg ex 并返回一个 JSON 对象。一切正常,我的问题是我如何能够从 python 页面“匹配”输出一些东西,以查看在 reg ex 操作期间到底发生了什么?我试过 print "" (python 2.5),但我知道这会打印到控制台。我做了一些研究,但找不到适合我的情况的任何东西。我不一定需要将它打印到 HTML 页面,只要我能看到正在发生的事情的任何地方。提前感谢您的帮助。

我可以访问网络服务器(SSH、SFTP 等),我尝试通过导入日志记录模块来记录,下面是我使用的代码。如果我从命令行运行页面,我可以让它记录下来,但当它被 JS 页面调用时就不行。

import logging
logging.basicConfig(filename='./SomeClass.log', filemode='w', level=logging.DEBUG)

class SomeClass:
    logging.info('Started')
    logging.info('Another log')

    def __init__(self, obj):
        logging.info('In the init')

    def another_functio(self):
                logging.info('Logging inside the function')

我已经尝试设置日志的完整路径,但我仍然遇到同样的问题,即只有当我从控制台运行此类时才会写入或更新日志文件。当网络服务器调用该类时,这不起作用。

logging.basicConfig(filename='/home/.../.../.../example.log', filemode='w', level=logging.DEBUG)
4

2 回答 2

1

根据您对 Web 服务器的访问权限,您可以手动运行代码,以便 web.py 使用其内置的 Web 服务器。然后打印语句将在控制台上结束。

否则,您是否考虑过简单地将自己的日志文件写入浏览器可访问的某个地方?

于 2012-06-07T01:34:35.690 回答
0

再次感谢所有帮助。在深入研究了 Apache 服务器的设置和 Python 实现之后,我找到了一个解决方案来帮助我了解正在发生的事情并调试我的 Web 应用程序。我看到 Apache 配置设置为记录错误,并且 WSGI 也阻止(呕吐)std.out。我能够做的是将打印命令重定向到 Apache 错误日志文件。

print >> sys.stderr, "Debugging print with variable" + variable

然后我检查 Apache 错误日志以开始调试 Web 应用程序。我想我会分享这个,以防其他人遇到这个问题,因为这对我来说很痛苦。

再次感谢。

于 2012-07-03T16:58:18.103 回答