diff --git a/config.py.sample b/config.py.sample index ce5f971..c382533 100644 --- a/config.py.sample +++ b/config.py.sample @@ -19,6 +19,43 @@ INSIDE_API_KEY = '' MEMBERSHIP_PRICE_KR = 1 +## Logging ## +############# + +LOGGING = { + 'version': 1, + 'disable_existing_loggers': True, + 'formatters': { + 'fmt': { + 'format': '%(asctime)s - %(name)s - %(levelname)s - %(message)s', + }, + }, + + 'handlers': { + 'file': { + 'class': 'logging.handlers.RotatingFileHandler', + 'level': 'DEBUG', + 'formatter': 'fmt', + 'filename': '/tmp/tekstmelding-app.log', + }, + 'email': { + 'class': 'logging.handlers.SMTPHandler', + 'level': 'ERROR', + 'mailhost': ('localhost', 25), + 'fromaddr': 'noreply@example.com', + 'toaddrs': ADMINS, + 'subject': 'Tekstmelding FAIL', + }, + }, + + 'loggers': { + '': { + 'handlers': ['file', 'email'], + 'level': 'DEBUG', + 'propagate': False, + }, + } +} ## Sendega ## ############# diff --git a/tekstmelding.py b/tekstmelding.py index 55c3fdc..658d0cb 100644 --- a/tekstmelding.py +++ b/tekstmelding.py @@ -6,6 +6,7 @@ import MySQLdb import MySQLdb.cursors import datetime import logging +import logging.config from utils import generate_activation_code import sendega @@ -17,23 +18,7 @@ app = Flask(__name__) app.config.from_object('config') if not app.debug: - # Log INFO and higher levels to stderr - stream_handler = logging.StreamHandler() - formatter = logging.Formatter( - "%(asctime)s - %(name)s - %(levelname)s - %(message)s") - stream_handler.setFormatter(formatter) - stream_handler.setLevel(logging.INFO) - app.logger.addHandler(stream_handler) - - # Email admins about ERRORs and higher levels - from logging.handlers import SMTPHandler - mail_handler = SMTPHandler( - mailhost='127.0.0.1', - fromaddr='noreply+tekstmelding@neuf.no', - toaddrs=app.config['ADMINS'], - subject='Tekstmelding FAIL') - mail_handler.setLevel(logging.ERROR) - app.logger.addHandler(mail_handler) + logging.config.dictConfig(app.config['LOGGING']) def connect_db():