From f534244dd842b465decb6a89405524088c6338f4 Mon Sep 17 00:00:00 2001 From: Jan Tuomi Date: Tue, 19 Sep 2017 19:31:43 +0300 Subject: [PATCH] Fix logging in all modules --- coffee_scale/__init__.py | 3 +-- coffee_scale/views.py | 7 ++---- members/models.py | 2 -- members/views.py | 29 +++++++++++-------------- sikweb/settings-sample.py | 45 ++++++++++++++++++++++++++++++++++----- webapp/views.py | 4 ---- 6 files changed, 55 insertions(+), 35 deletions(-) diff --git a/coffee_scale/__init__.py b/coffee_scale/__init__.py index f52657c..6ddb4ad 100644 --- a/coffee_scale/__init__.py +++ b/coffee_scale/__init__.py @@ -1,6 +1,5 @@ from . import mqtt import logging -logger = logging.getLogger(__name__) -logger.debug('Starting mqtt loop') +logging.info('Starting mqtt loop') mqtt.client.loop_start() diff --git a/coffee_scale/views.py b/coffee_scale/views.py index 0cddb0c..d35cd22 100644 --- a/coffee_scale/views.py +++ b/coffee_scale/views.py @@ -8,10 +8,6 @@ import coffee_scale.mqtt # somehow this is needed import logging from django.conf import settings -logger = logging.getLogger(__name__) -logging.basicConfig(format='[%(levelname)s]%(asctime)s %(message)s', - level=settings.LOGGERLEVEL, filename=settings.LOGPATH) - def get_cups_from_weight(weight): if not weight: @@ -27,11 +23,12 @@ def get_cups_from_weight(weight): if cups > 10: cups = 10 - logger.debug("cups: {}, weight: {}".format(cups, weight)) + logging.debug("Coffee cups: {}, weight: {}".format(cups, weight)) return cups def coffee_view(request): + logging.info('User navigated to coffee page!') return render(request, 'coffee.html') diff --git a/members/models.py b/members/models.py index 96863c7..a8c46d0 100644 --- a/members/models.py +++ b/members/models.py @@ -6,8 +6,6 @@ from datetime import datetime import csv import logging -memberlogger = logging.getLogger(__name__) - class BaseMember(models.Model): ''' diff --git a/members/views.py b/members/views.py index 59ca9ee..da03f3d 100644 --- a/members/views.py +++ b/members/views.py @@ -29,13 +29,8 @@ from smtplib import SMTPAuthenticationError from members.models import Member, Request, Payment, MemberConflict from members.forms import MemberForm, PaymentForm, ApplicationForm - -# Logger function, you can use the same idea when implementing other loggers to other apps from members.tables import MemberTable, PaymentTable, RequestTable -memberlogger = logging.getLogger(__name__) -logging.basicConfig(format='[%(levelname)s]%(asctime)s %(message)s', level=settings.LOGGERLEVEL, filename=settings.LOGPATH) - def validate_recaptcha(response): ''' @@ -54,7 +49,7 @@ def validate_recaptcha(response): resp = requests.post(url, values, headers=headers) try: result = json.loads(resp.text) - memberlogger.info('Recaptcha response: {}'.format(result)) + logging.info('Recaptcha response: {}'.format(result)) return result["success"] except: return False @@ -147,7 +142,7 @@ def member_submit(request, *args, **kwargs): form = MemberForm(request.POST) if form.is_valid(): form.save() - memberlogger.info("Saved new member to member register with the following info: {}".format(form)) + logging.info("Saved new member to member register with the following info: {}".format(form)) notification = "{} {} {}.".format(_("Successfully added member"), form.cleaned_data['last_name'], form.cleaned_data['first_name']) @@ -168,7 +163,7 @@ def member_update(request, *args, **kwargs): form = MemberForm(request.POST, instance=member) form.save() - memberlogger.info("Updated member in member register with the following info: {}".format(form)) + logging.info("Updated member in member register with the following info: {}".format(form)) notification = "{} {} {}.".format(_("Successfully updated member"), member.last_name, member.first_name) return HttpResponseRedirect('/members/list?notification={}'.format(html.escape(notification))) @@ -190,7 +185,7 @@ def member_delete(request, *args, **kwargs): notification = "{} {} {}.".format(_("Successfully deleted member"), member.last_name, member.first_name) member.delete() - memberlogger.info("Delete member in member register with the following id: {}".format(id)) + logging.info("Delete member in member register with the following id: {}".format(id)) return HttpResponseRedirect('/members/list?notification={}'.format(html.escape(notification))) except: return render(request, 'error.html', {'error': _('Could not delete member object')}) @@ -256,7 +251,7 @@ def application_accept(request, *args, **kwargs): member.save() application.delete() - memberlogger.info("Accepted application in member register with the following info: {}".format(form)) + logging.info("Accepted application in member register with the following info: {}".format(form)) notification = "{} {}.".format(_("Successfully accepted application"), str(application)) return HttpResponseRedirect('/members/list?notification={}'.format(html.escape(notification))) else: @@ -276,7 +271,7 @@ def application_delete(request, *args, **kwargs): application = Request.objects.get(id=id) notification = "{} {}.".format(_("Successfully deleted application"), str(application)) application.delete() - memberlogger.info("Delete application in member register with the following id: {}".format(id)) + logging.info("Delete application in member register with the following id: {}".format(id)) return HttpResponseRedirect('/members/applications?notification={}'.format(html.escape(notification))) except: return render(request, 'error.html', {'error': _('Could not delete application object')}) @@ -342,7 +337,7 @@ def payment_submit(request, *args, **kwargs): form = PaymentForm(request.POST) if form.is_valid(): form.save() - memberlogger.info("Saved new payment to member register with the following info: {}".format(form)) + logging.info("Saved new payment to member register with the following info: {}".format(form)) notification = "{} {}.".format(_("Successfully added payment for member"), form.cleaned_data['member']) return HttpResponseRedirect('/members/payments?notification={}'.format(html.escape(notification))) @@ -389,7 +384,7 @@ def payment_delete(request, *args, **kwargs): payment = Payment.objects.get(id=id) notification = "{} {}.".format(_("Successfully deleted payment"), str(payment)) payment.delete() - memberlogger.info("Delete payment '{}' in member register".format(str(payment))) + logging.info("Delete payment '{}' in member register".format(str(payment))) return HttpResponseRedirect('/members/payments?notification={}'.format(html.escape(notification))) except: return render(request, 'error.html', {'error': _('Could not delete payment object')}) @@ -406,7 +401,7 @@ def payment_update(request, *args, **kwargs): form = PaymentForm(request.POST, instance=payment) form.save() - memberlogger.info("Updated member in member register with the following info: {}".format(form)) + logging.info("Updated member in member register with the following info: {}".format(form)) notification = "{} {}.".format(_("Successfully updated payment"), str(payment)) return HttpResponseRedirect('/members/payments?notification={}'.format(html.escape(notification))) else: @@ -431,7 +426,7 @@ def import_csv(request, *args, **kwargs): success = Member.from_csv(data) if success: - memberlogger.info('Imported CSV data:\n'.format(data)) + logging.info('Imported CSV data:\n'.format(data)) notification = "{}.".format(_("Successfully imported multiple members")) return HttpResponseRedirect('/members/list?notification={}'.format(html.escape(notification))) else: @@ -524,7 +519,7 @@ def email_on_request(sender, instance, created, **kwargs): message = 'Please validate your email address\r\n' send_mail_wrapper(subject, message, instance.email) except SMTPAuthenticationError: - memberlogger.error('Failed to send email to accepted request!') + logging.error('Failed to send email to accepted request!') @receiver(post_save, sender=Member) @@ -538,7 +533,7 @@ def email_on_accept(sender, instance, created, **kwargs): message = 'Jäsenhakemuksesi on hyväksytty!!!\r\n' send_mail_wrapper(subject, message, instance.email) except SMTPAuthenticationError: - memberlogger.error('Failed to send email to accepted member!') + logging.error('Failed to send email to accepted member!') def check_for_duplicates(instance): diff --git a/sikweb/settings-sample.py b/sikweb/settings-sample.py index 1faf433..2013527 100644 --- a/sikweb/settings-sample.py +++ b/sikweb/settings-sample.py @@ -35,6 +35,46 @@ if not IS_DOCKER: else: ALLOWED_HOSTS = ["*"] +# Logger level + +LOGGERLEVEL = logging.DEBUG +LOGPATH = os.path.join(BASE_DIR, "logs", "debug.log") + +LOGGING = { + 'version': 1, + 'disable_existing_loggers': False, + 'formatters': { + 'verbose': { + 'format': '%(levelname)s %(asctime)s %(module)s: %(message)s' + }, + }, + 'handlers': { + 'file': { + 'level': 'DEBUG', + 'class': 'logging.FileHandler', + 'filename': LOGPATH, + 'formatter': 'verbose', + }, + 'console': { + 'level': 'DEBUG', + 'class': 'logging.StreamHandler', + 'formatter': 'verbose', + }, + }, + 'root': { + 'handlers': ['file', 'console'], + 'level': 'DEBUG', + 'propagate': True, + }, + 'loggers': { + 'django': { + 'handlers': ['file', 'console'], + 'level': 'WARNING', + 'propagate': True, + }, + }, +} + # Application definition @@ -187,11 +227,6 @@ ENABLE_AUTOMATIC_EMAILS = False GOOGLE_RECAPTCHA_SITE_KEY = "YOUR-PUBLIC-KEY" GOOGLE_RECAPTCHA_SECRET_KEY = "YOUR-PRIVATE-KEY" -# Logger level - -LOGGERLEVEL = logging.ERROR -LOGPATH = "logs/debug.log" - # Internationalization # https://docs.djangoproject.com/en/1.9/topics/i18n/ diff --git a/webapp/views.py b/webapp/views.py index b51478e..d8e0ac5 100644 --- a/webapp/views.py +++ b/webapp/views.py @@ -6,10 +6,6 @@ from django.contrib.auth.decorators import permission_required from django.conf import settings import logging -webapplogger = logging.getLogger(__name__) -logging.basicConfig(format='[%(levelname)s]%(asctime)s %(message)s', - level=settings.LOGGERLEVEL, filename=settings.LOGPATH) - @require_http_methods(["GET"]) def main_index(request, *args, **kwargs):