Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Meilleur gestion des erreurs serveur #70

Open
rednaks opened this issue Jun 3, 2015 · 4 comments
Open

Meilleur gestion des erreurs serveur #70

rednaks opened this issue Jun 3, 2015 · 4 comments

Comments

@rednaks
Copy link
Member

rednaks commented Jun 3, 2015

Plusieurs utilisateurs n'arrive pas à soumettre le formulaire de la page /contribute, et il se peut qu'il ne soit pas le seul.
Il reçoit une "Erreur 500" erreur interne au serveur.

J'ai essayé de reproduire ce qu'il a fait pour comprendre comment mais je n'ai pas eu cette erreur.

Ça serai bien d'essayer de logger ces problème, avoir une sorte de "rapport de crash" pour améliorer le site.

@medfiras
Copy link
Contributor

medfiras commented Jun 3, 2015

il a fait le test sur la version mobile (firefox os, android) ?

@rednaks
Copy link
Member Author

rednaks commented Jun 3, 2015

Non sur desktop, le problème il a aussi essayé de le faire depuis le PC de Selmi il y a eu le même problème, je ne comprend pas d'où viens le problème.

@medfiras
Copy link
Contributor

medfiras commented Jun 8, 2015

@rednaks
Copy link
Member Author

rednaks commented Jun 8, 2015

Oui j'ai testé mais ce n'est pas suffisant :/

diff --git a/moztn.py b/moztn.py
index 111a118..a8f2936 100644
--- a/moztn.py
+++ b/moztn.py
@@ -11,6 +11,8 @@ from wtforms import (
 )
 from flask.ext.mail import Message, Mail

+import logging
+


 class ContactForm(Form):
@@ -54,10 +56,32 @@ class ContributeForm(Form):
   recaptcha = RecaptchaField()


+class InvalidUsage(Exception):
+    status_code = 400
+
+    def __init__(self, message, status_code=None, payload=None):
+        Exception.__init__(self)
+        self.message = message
+        if status_code is not None:
+            self.status_code = status_code
+        self.payload = payload
+
+    def to_dict(self):
+        rv = dict(self.payload or ())
+        rv['message'] = self.message
+        return rv
+
+def log_exception(e):
+    logging.exception(e)
+    return "An Error eccured, see log :p"

 mail = Mail()

 app = Flask(__name__)
+
+app.handle_exception = log_exception
+logging.basicConfig(filename='err.log',format='=======\n%(asctime)s %(message)s')
+
 app.secret_key = 'test_key'
 app.config['MAIL_SERVER'] = 'smtp.gmail.com'
 app.config['MAIL_PORT'] = 465
@@ -79,6 +103,7 @@ mail.init_app(app)

 @app.route('/')
 def home():
+    raise InvalidUsage('Exception :(')
     return render_template('home/index.html')

 @app.route('/contribute', methods=['GET', 'POST'])
@@ -152,6 +177,5 @@ def webapp():
 def blog_redirection(e):
     return redirect('https://blog.mozilla-tunisia.org{0}'.format(request.path))

-
 if __name__ == '__main__':
     app.run(host='0.0.0.0', debug=True)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants