| |
@@ -25,6 +25,7 @@
|
| |
|
| |
"""Setup review_stats.py logging."""
|
| |
|
| |
+ from logging.handlers import SMTPHandler
|
| |
from systemd import journal
|
| |
import logging
|
| |
|
| |
@@ -50,3 +51,33 @@
|
| |
|
| |
log.addHandler(console_handler)
|
| |
log.addHandler(logfile_handler)
|
| |
+
|
| |
+ if 'mail_server' in config_file['review-stats-logging']:
|
| |
+ try:
|
| |
+ # Setup a smtp logger
|
| |
+ mail_server = config_file.get('review-stats-logging', 'mail_server').split(':')
|
| |
+ to_list = [mail for mail in config_file.get('review-stats-logging',
|
| |
+ 'mail_to',
|
| |
+ fallback='').split(',')]
|
| |
+ if ('mail_secure' in config_file['review-stats-logging'] and
|
| |
+ config_file['review-stats-logging']['mail_secure'] == 'true'):
|
| |
+ secure = ()
|
| |
+ credentials = (config_file.get('review-stats-logging', 'mail_username'),
|
| |
+ config_file.get('review-stats-logging', 'mail_password'))
|
| |
+ else:
|
| |
+ secure = None
|
| |
+ credentials = None
|
| |
+ mail_handler = SMTPHandler(mailhost=mail_server,
|
| |
+ fromaddr=config_file.get('review-stats-logging',
|
| |
+ 'mail_from'),
|
| |
+ toaddrs=to_list,
|
| |
+ subject='review-stats script error',
|
| |
+ credentials=credentials,
|
| |
+ secure=secure)
|
| |
+ mail_format = logging.Formatter('%(asctime)s %(name)s %(levelname)-8s %(message)s')
|
| |
+ mail_handler.setFormatter(mail_format)
|
| |
+ mail_handler.setLevel(config_file.get('review-stats-logging', 'mail_level',
|
| |
+ fallback='ERROR'))
|
| |
+ log.addHandler(mail_handler)
|
| |
+ except Exception:
|
| |
+ log.warning('Unable to use SMTP logging', exc_info=1)
|
| |
Provide a way to inform admins about errors by email.
Closes #1