[copr] master: Enable sending mails to admins on app error (af87130)
bkabrda at fedoraproject.org
bkabrda at fedoraproject.org
Thu Jan 24 12:31:56 UTC 2013
Repository : http://git.fedorahosted.org/cgit/copr.git
On branch : master
>---------------------------------------------------------------
commit af87130dda51728fabc6a11e4a4b7d19cb05954f
Author: Bohuslav Kabrda <bkabrda at redhat.com>
Date: Thu Jan 24 13:31:37 2013 +0100
Enable sending mails to admins on app error
>---------------------------------------------------------------
coprs_frontend/coprs/__init__.py | 3 ++-
coprs_frontend/coprs/config.py | 5 +++++
coprs_frontend/coprs/log.py | 27 +++++++++++++++++++++++++++
3 files changed, 34 insertions(+), 1 deletions(-)
diff --git a/coprs_frontend/coprs/__init__.py b/coprs_frontend/coprs/__init__.py
index f2ea8d4..a96ace9 100644
--- a/coprs_frontend/coprs/__init__.py
+++ b/coprs_frontend/coprs/__init__.py
@@ -29,8 +29,9 @@ def lookup_current_user():
def page_not_found(message):
return flask.render_template('404.html', message = message), 404
-import coprs.models
import coprs.filters
+import coprs.log
+import coprs.models
from coprs.views import coprs_ns
from coprs.views.coprs_ns import coprs_builds
diff --git a/coprs_frontend/coprs/config.py b/coprs_frontend/coprs/config.py
index ef1578f..6218ea9 100644
--- a/coprs_frontend/coprs/config.py
+++ b/coprs_frontend/coprs/config.py
@@ -1,3 +1,4 @@
+import logging
import os
class Config(object):
@@ -17,6 +18,10 @@ class Config(object):
# Token length, defaults to 30, DB set to varchar 255
API_TOKEN_LENGTH = 30
+ # logging options
+ SEND_LOGS_TO = []
+ LOGGING_LEVEL = logging.ERROR
+
class ProductionConfig(Config):
DEBUG = False
diff --git a/coprs_frontend/coprs/log.py b/coprs_frontend/coprs/log.py
new file mode 100644
index 0000000..5fa61c3
--- /dev/null
+++ b/coprs_frontend/coprs/log.py
@@ -0,0 +1,27 @@
+import logging
+
+from coprs import app
+
+send_logs_to = app.config.get('SEND_LOGS_TO')
+level = app.config.get('LOGGING_LEVEL')
+
+formatter = logging.Formatter('''
+Message type: %(levelname)s
+Location: %(pathname)s:%(lineno)d
+Module: %(module)s
+Function: %(funcName)s
+Time: %(asctime)s
+
+Message:
+
+%(message)s
+''')
+
+if not app.debug:
+ mail_handler = logging.handlers.SMTPHandler('127.0.0.1',
+ 'copr-fe-error@{0}'.format(app.config['SERVER_NAME']),
+ send_logs_to,
+ 'Yay, error in copr frontend occured!')
+ mail_handler.setFormatter(formatter)
+ mail_handler.setLevel(level)
+ app.logger.addHandler(mail_handler)
More information about the copr-devel
mailing list