chore(settings): add logging configuration and replace print statements

pull/174/head
Christian Merten 3 months ago
parent 19240e47c9
commit 03d4781d49
Signed by: christian.merten
GPG Key ID: D953D69721B948B3

@ -58,6 +58,7 @@ base_settings = [
'components/emails.py', 'components/emails.py',
'components/texts.py', 'components/texts.py',
'components/locale.py', 'components/locale.py',
'components/logging.py',
'components/oauth.py', 'components/oauth.py',
] ]

@ -0,0 +1,59 @@
import os
DJANGO_LOG_LEVEL = get_var('logging', 'django_level', default='INFO')
ROOT_LOG_LEVEL = get_var('logging', 'level', default='INFO')
LOG_ERROR_TO_EMAIL = get_var('logging', 'email_admins', default=False)
LOG_EMAIL_BACKEND = EMAIL_BACKEND if LOG_ERROR_TO_EMAIL else "django.core.mail.backends.console.EmailBackend"
LOG_ERROR_INCLUDE_HTML = get_var('logging', 'error_report_include_html', default=False)
LOGGING = {
"version": 1,
"disable_existing_loggers": False,
"filters": {
"require_debug_false": {
"()": "django.utils.log.RequireDebugFalse",
},
"require_debug_true": {
"()": "django.utils.log.RequireDebugTrue",
},
},
"formatters": {
"simple": {
"format": "[{asctime}: {levelname}/{name}] {message}",
"style": "{",
},
"verbose": {
"format": "[{asctime}: {levelname}/{name}] {pathname}:{lineno} {message}",
"style": "{",
},
},
"handlers": {
"console": {
"class": "logging.StreamHandler",
"formatter": "simple",
},
"console_verbose": {
"class": "logging.StreamHandler",
"formatter": "verbose",
"level": "ERROR",
},
"mail_admins": {
"level": "ERROR",
"class": "django.utils.log.AdminEmailHandler",
"email_backend": LOG_EMAIL_BACKEND,
"include_html": LOG_ERROR_INCLUDE_HTML,
"filters": ["require_debug_false"],
},
},
"root": {
"handlers": ["console"],
"level": ROOT_LOG_LEVEL,
},
"loggers": {
"django": {
"handlers": ["console", "mail_admins"],
"level": DJANGO_LOG_LEVEL,
"propagate": False,
},
},
}

@ -1,9 +1,13 @@
from django.core import mail from django.core import mail
from django.core.mail import EmailMessage from django.core.mail import EmailMessage
from django.conf import settings from django.conf import settings
import logging
import os import os
logger = logging.getLogger(__name__)
NOT_SENT, SENT, PARTLY_SENT = 0, 1, 2 NOT_SENT, SENT, PARTLY_SENT = 0, 1, 2
def send(subject, content, sender, recipients, message_id=None, reply_to=None, def send(subject, content, sender, recipients, message_id=None, reply_to=None,
@ -41,7 +45,7 @@ def send(subject, content, sender, recipients, message_id=None, reply_to=None,
# send all mails with one connection # send all mails with one connection
connection.send_messages(mails) connection.send_messages(mails)
except Exception as e: except Exception as e:
print("Error when sending mail:", e) logger.error(f"Caught exception while sending email: {e}")
failed = True failed = True
else: else:
succeeded = True succeeded = True

@ -1,3 +1,4 @@
import logging
from django.db import models from django.db import models
from django.core.exceptions import ValidationError from django.core.exceptions import ValidationError
from django import forms from django import forms
@ -17,6 +18,9 @@ from .rules import is_creator
import os import os
logger = logging.getLogger(__name__)
alphanumeric = RegexValidator(r'^[0-9a-zA-Z._-]*$', alphanumeric = RegexValidator(r'^[0-9a-zA-Z._-]*$',
_('Only alphanumeric characters, ., - and _ are allowed')) _('Only alphanumeric characters, ., - and _ are allowed'))
@ -145,7 +149,7 @@ class Message(CommonModel):
members.update([mol.member for mol in members.update([mol.member for mol in
self.to_notelist.membersonlist.all()]) self.to_notelist.membersonlist.all()])
filtered = [m for m in members if m.gets_newsletter] filtered = [m for m in members if m.gets_newsletter]
print("sending mail to", filtered) logger.info(f"sending mail to {filtered}")
attach = [a.f.path for a in Attachment.objects.filter(msg__id=self.pk) attach = [a.f.path for a in Attachment.objects.filter(msg__id=self.pk)
if a.f.name] if a.f.name]
@ -189,7 +193,7 @@ class Message(CommonModel):
a.delete() a.delete()
success = SENT success = SENT
except Exception as e: except Exception as e:
print("Exception caught", e) logger.error(f"Caught exception while sending email: {e}")
success = NOT_SENT success = NOT_SENT
finally: finally:
self.save() self.save()

@ -590,7 +590,6 @@ class Member(Person):
def send_upload_registration_form_link(self): def send_upload_registration_form_link(self):
if not self.upload_registration_form_key: if not self.upload_registration_form_key:
return return
print(self.name, self.upload_registration_form_key)
link = self.get_upload_registration_form_link() link = self.get_upload_registration_form_link()
self.send_mail(_('Upload registration form'), self.send_mail(_('Upload registration form'),
settings.UPLOAD_REGISTRATION_FORM_TEXT.format(name=self.prename, settings.UPLOAD_REGISTRATION_FORM_TEXT.format(name=self.prename,
@ -1579,7 +1578,6 @@ class Freizeit(CommonModel):
'Betreuer/in': str(numbers['staff']), 'Betreuer/in': str(numbers['staff']),
'Auswahl Veranstaltung': 'Auswahl2', 'Auswahl Veranstaltung': 'Auswahl2',
'Ort, Datum': '{p}, {d}'.format(p=settings.SEKTION, d=datetime.now().strftime('%d.%m.%Y'))} 'Ort, Datum': '{p}, {d}'.format(p=settings.SEKTION, d=datetime.now().strftime('%d.%m.%Y'))}
print(members)
for i, m in enumerate(members): for i, m in enumerate(members):
suffix = str(' {}'.format(i + 1)) suffix = str(' {}'.format(i + 1))
# indexing starts at zero, but the listing in the pdf starts at 1 # indexing starts at zero, but the listing in the pdf starts at 1

@ -4,6 +4,7 @@ import os
import subprocess import subprocess
import time import time
import glob import glob
import logging
from io import BytesIO from io import BytesIO
from pypdf import PdfReader, PdfWriter, PageObject from pypdf import PdfReader, PdfWriter, PageObject
from django import template from django import template
@ -15,6 +16,8 @@ from contrib.media import media_path, media_dir, serve_media, ensure_media_dir,
from utils import normalize_filename from utils import normalize_filename
from PIL import Image from PIL import Image
logger = logging.getLogger(__name__)
def serve_pdf(filename_pdf): def serve_pdf(filename_pdf):
return serve_media(filename_pdf, 'application/pdf') return serve_media(filename_pdf, 'application/pdf')
@ -107,8 +110,7 @@ def pdf_add_attachments(pdf_writer, attachments):
pdf_writer.append(img_pdf_scaled) pdf_writer.append(img_pdf_scaled)
except Exception as e: except Exception as e:
print("Could not add image", fp) logger.warning(f"Could not add image under filepath {fp}: {e}.")
print(e)
def scale_pdf_page_to_a4(page): def scale_pdf_page_to_a4(page):

@ -291,7 +291,6 @@ def register(request):
new_member.send_upload_registration_form_link() new_member.send_upload_registration_form_link()
return HttpResponseRedirect(reverse('members:upload_registration_form') + "?key=" + new_member.upload_registration_form_key) return HttpResponseRedirect(reverse('members:upload_registration_form') + "?key=" + new_member.upload_registration_form_key)
except ValueError as e: except ValueError as e:
print("value error", e)
# when input is invalid # when input is invalid
if pwd: if pwd:
return render_register(request, group, form, emergency_contacts_formset, pwd=pwd.password, return render_register(request, group, form, emergency_contacts_formset, pwd=pwd.password,

@ -5,6 +5,8 @@ from django.core.exceptions import ValidationError
from django.utils.translation import gettext_lazy as _ from django.utils.translation import gettext_lazy as _
from decimal import Decimal, ROUND_HALF_DOWN from decimal import Decimal, ROUND_HALF_DOWN
import unicodedata import unicodedata
import logging
logger = logging.getLogger(__name__)
def file_size_validator(max_upload_size): def file_size_validator(max_upload_size):
@ -50,7 +52,7 @@ class RestrictedFileField(models.FileField):
'{}').format(self.max_upload_size, '{}').format(self.max_upload_size,
f._size)) f._size))
except AttributeError as e: except AttributeError as e:
print(e) logger.warning(e)
return data return data

Loading…
Cancel
Save