Python Web开发介绍(三) -mod_wsgi+web.py 如何打调试信息
2013-01-24 19:23
465 查看
做程序开发的,调试程序肯定要打log查看程序出错原因,要知道打出程序运行到某个点上某个量的值是多少,代码到底有没有跑到等等.
默认的,
出现了HTTP 500后,在C:\Program Files\Apache Software Foundation\Apache2.2\logs\error.log会打出程序最后出现错误的函数调用栈和异常原因,
可以通过这个来确定问题发生的地方.
但是知道哪里发生了问题有时还不够,我们还要知道为什么会发生这些问题,这时候就要我们手工增加一些调试语句,
随着程序运行,输出一些我们想知道的信息.
那么,
有哪些办法来调试呢?
1. print 'xxxxx'
在C:\Program Files\Apache Software Foundation\Apache2.2\logs\error.log文件中就会打出 [error] xxxxx 的调试语句了.
当然,可以配合’+’运算符输出更多的信息;需要调用前import sys
2. print >> sys.stderr, "xxxx"
效果同上;需要调用前import sys
这两个是最简单的方法,相信大家都会用这两种方法去做,尤其是第一种.
下面介绍一个借助第三方包的方法,这是我在研究python网站怎么打trace的时候走弯路发现的,一开始以为mod_wsgi没有自带调试方法,所以找了一个第三方包,
后来才发现上面的print语句就可以了.既然用过,就说一说吧.
这个工具就是wsgilog,一看名字就知道这个东东是用来打log的,呵呵.目前版本是0.3,可以从http://pypi.python.org/packages/source/w/wsgilog/wsgilog-0.3.zip下载,解压后cmd到解压后的目录,运行python
setup.py执行安装即可.
安装完后,在代码中我们这样使用:
就是建立一个打log的中间件,并把这个中间件作为参数,传给web app初始化函数.
代码改动完成,如何使用呢?
有下面几个方法:
web.ctx.environ['wsgilog.logger'].info('xxxxx')
print >> web.ctx.environ['wsgi.errors'], "xxxxx"
print "xxxx" #跟系统调用方法一样哦
这三个方法的结果都一样,在C:\Program Files\Apache Software Foundation\Apache2.2\logs\error.log会打出log信息:
同时,在C:\Program Files\Apache Software Foundation\Apache2.2目录下会有一个wsgilog.log文件,调试信息也会输出至该文件:
据说, wsgilog有更强大的功能,看上面代码他的定义有一个tohtml=True,
貌似是说错误会通过html页面显示出来,不用去查服务器log文件了,不过这个功能怎么用呢,
我目前还没发现.
默认的,
出现了HTTP 500后,在C:\Program Files\Apache Software Foundation\Apache2.2\logs\error.log会打出程序最后出现错误的函数调用栈和异常原因,
可以通过这个来确定问题发生的地方.
但是知道哪里发生了问题有时还不够,我们还要知道为什么会发生这些问题,这时候就要我们手工增加一些调试语句,
随着程序运行,输出一些我们想知道的信息.
那么,
有哪些办法来调试呢?
1. print 'xxxxx'
在C:\Program Files\Apache Software Foundation\Apache2.2\logs\error.log文件中就会打出 [error] xxxxx 的调试语句了.
当然,可以配合’+’运算符输出更多的信息;需要调用前import sys
2. print >> sys.stderr, "xxxx"
效果同上;需要调用前import sys
这两个是最简单的方法,相信大家都会用这两种方法去做,尤其是第一种.
下面介绍一个借助第三方包的方法,这是我在研究python网站怎么打trace的时候走弯路发现的,一开始以为mod_wsgi没有自带调试方法,所以找了一个第三方包,
后来才发现上面的print语句就可以了.既然用过,就说一说吧.
这个工具就是wsgilog,一看名字就知道这个东东是用来打log的,呵呵.目前版本是0.3,可以从http://pypi.python.org/packages/source/w/wsgilog/wsgilog-0.3.zip下载,解压后cmd到解压后的目录,运行python
setup.py执行安装即可.
安装完后,在代码中我们这样使用:
… from wsgilog import log logger_middleware =log(tohtml=True, tofile='wsgi.log', tostream=True, toprint=True) …. …. …. application = web.application(urls, globals()).wsgifunc(logger_middleware) |
代码改动完成,如何使用呢?
有下面几个方法:
web.ctx.environ['wsgilog.logger'].info('xxxxx')
print >> web.ctx.environ['wsgi.errors'], "xxxxx"
print "xxxx" #跟系统调用方法一样哦
这三个方法的结果都一样,在C:\Program Files\Apache Software Foundation\Apache2.2\logs\error.log会打出log信息:
[Thu Jan 24 19:16:11 2013] [error] wsgilog.log: Thu, 24 Jan 2013 19:16:11 INFO This information is logged. |
wsgilog.log: Thu, 24 Jan 2013 19:16:11 INFO This information is logged. |
貌似是说错误会通过html页面显示出来,不用去查服务器log文件了,不过这个功能怎么用呢,
我目前还没发现.
相关文章推荐
- 搭建Apache+web.py+mod_wsgi python服务器
- Python Web开发介绍(二) -Web.py模板使用中的问题
- Apache mod_wsgi web.py例子
- Python Web初学解惑之 WSGI、flup、fastcgi、web.py的关系
- Web.py Cookbook 简体中文版 - deploying web.py with nginx and mod_wsgi
- python webpy模板介绍
- Web.py Cookbook 简体中文版 - 使用Apache + mod_wsgi部署webpy应用
- Webpy + Apache with mod_wsgi on Ubuntu http://webpy.org/cookbook/mod_wsgi-apache-ubuntu
- Windows环境下使用Apache+mod_wsgi部署webpy
- Windows环境下使用Apache+mod_wsgi部署webpy
- [Ubuntu]Python的Web开发环境之mod_wsgi
- python-web.py 入门介绍
- WIN下,Web.py+apache2.2(mod_wsgi)保证session可用
- Python Web初学解惑之 WSGI、flup、fastcgi、web.py的关系
- 在apache上部署web.py项目(python2.7+web.py+mod_wsgi+apache2.2)
- Nginx + Apache, mod_wsgi serve python web application (test with TG2)
- apache+wsgi+python的web调试
- 在html中如.html .psp文件打印调试信息用req.write( “ ”);在python中如.py文件打印用print
- Python2.6+WSGI+web.py 构建WEB环境(CentOS5.4)
- CentOS 7.1 升级Python2.7.10及编译mod_wsgi指南