使用wsgi将stdout和stderr重定向到Django中的文件
我试图让django在共享主机中与wsgi一起工作,因此我无法访问服务器日志 我试图将输出重定向到django.wsgi脚本中的一个文件,如下所示:使用wsgi将stdout和stderr重定向到Django中的文件,django,mod-wsgi,django-wsgi,Django,Mod Wsgi,Django Wsgi,我试图让django在共享主机中与wsgi一起工作,因此我无法访问服务器日志 我试图将输出重定向到django.wsgi脚本中的一个文件,如下所示: saveout = sys.stdout log_out = open('out.log', 'w') sys.stdout = log_out 但这是我的错误(在我可以访问的唯一错误日志中) [Thu Oct 07 19:18:08 2010][error][client]文件“/home/myuser/public_html/djang
saveout = sys.stdout
log_out = open('out.log', 'w')
sys.stdout = log_out
但这是我的错误(在我可以访问的唯一错误日志中)
[Thu Oct 07 19:18:08 2010][error][client]文件“/home/myuser/public_html/django.wsgi”,第9行,在
[Thu Oct 07 19:18:08 2010][error][client]mod_wsgi(pid=30677):处理wsgi脚本'/home/myuser/public_html/django.wsgi'时发生异常。
这就是我能得到的所有错误
第9行是尝试打开文件的行。我已经尝试过创建以前创建的文件,为所有人提供了写入权限,而没有创建以前创建的文件。。什么也没有。
在应用程序中,我只收到一个500服务器错误
有没有一种不访问apache日志而获得此输出的正确方法
编辑:
使用绝对路径,我可以打开文件并对其进行写入,但除非最终关闭文件,否则我会得到空文件,有必要吗?我可以把文件打开吗
关于最初的问题,尽管我使用了异常处理,但在脚本末尾向文件写入“finish ok”,然后关闭文件,但仍然会出现错误:
[Thu Oct 07 13:33:07 2010] [error] [client <ip>] mod_wsgi (pid=32541): Exception occurred processing WSGI script '/home/myuser/public_html/django.wsgi'.
[Thu Oct 07 13:33:07 2010][error][client]mod_wsgi(pid=32541):处理wsgi脚本'/home/myuser/public_html/django.wsgi'时发生异常。
如果我故意提出一个错误,它会记录在文件中,所以当我得到“ok”时,我认为脚本工作正常,但结果仍然是消息错误。。。没有线索您不能在WSGI应用程序中使用相对路径名,如
out.log
。WSGI没有指定工作目录将指向的位置,除非在守护程序模式下特别要求,否则mod_WSGI不会设置它
使用基于应用程序根的绝对路径名。如果需要,您可以使用os.path.dirname(\uu文件\uu)
获取包含当前脚本/模块的目录
[Thu Oct 07 13:33:07 2010] [error] [client <ip>] mod_wsgi (pid=32541): Exception occurred processing WSGI script '/home/myuser/public_html/django.wsgi'.