Pra*_*har 7 python logging mod-wsgi
很长一段时间以来,我一直在努力让这项工作得以实现,但我现在真的很有智慧.我已经尝试过在SO和flask文档上找到的所有内容,但我仍然无法使用简单的错误日志,以便我可以调试我的applcation.以下是粘贴的代码 -
# main.py
from flask import Flask
import logging
app = Flask(__name__)
file_handler = logging.FileHandler(filename='/tmp/election_error.log')
file_handler.setLevel(logging.WARNING)
app.logger.addHandler(file_handler)
@app.route('/')
def hello():
return "hello
#missing quotes to generate error
if __name__ == "__main__":
app.run()
#wsgi file
import sys
import logging
sys.path.insert(0, "/var/www/voting_app")
logging.basicConfig(stream=sys.stderr)
from main import app as application
# apache2 conf file
WSGIDaemonProcess voting_app threads=5
WSGIScriptAlias /election /var/www/voting_app/voting_app.wsgi
LogLevel info
<Directory /var/www/voting_app>
WSGIProcessGroup voting_app
WSGIApplicationGroup %{GLOBAL}
Order deny,allow
Allow from all
</Directory>
Run Code Online (Sandbox Code Playgroud)
请告诉我我哪里出错了.非常感谢.
您创建的特定错误(语法错误)会导致WSGI脚本文件无法加载到mod_wsgi中.此错误最终会出现在Apache错误日志文件中,而不是您使用日志记录模块设置的日志文件.你看过Apache错误日志文件了吗?
对于在请求执行期间引发的异常,Flask默认将其转换为500错误页面,否则将显示详细信息.您需要将Flask设置为邮件或以其他方式记录此类运行时异常:
http://flask.pocoo.org/docs/errorhandling/
如果要在返回浏览器的500页中显示运行时异常以进行开发,则需要启用Flask调试模式.这可以通过将app.debug设置为True来完成:
http://flask.pocoo.org/docs/config/?highlight=app%20debug
您不应该在面向用户的生产系统上启用调试模式.
您需要生成运行时异常,而不是编译时异常。缺少引号是编译时异常,您的日志记录代码将永远不会被执行。
只需引发异常即可:
@app.route('/')
def hello():
raise Exception('Deliberate exception raised')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9887 次 |
| 最近记录: |