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/texts.py',
'components/locale.py',
'components/logging.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.mail import EmailMessage
from django.conf import settings
import logging
import os
logger = logging.getLogger(__name__)
NOT_SENT, SENT, PARTLY_SENT = 0, 1, 2
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
connection.send_messages(mails)
except Exception as e:
print("Error when sending mail:", e)
logger.error(f"Caught exception while sending email: {e}")
failed = True
else:
succeeded = True

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

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

@ -4,6 +4,7 @@ import os
import subprocess
import time
import glob
import logging
from io import BytesIO
from pypdf import PdfReader, PdfWriter, PageObject
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 PIL import Image
logger = logging.getLogger(__name__)
def serve_pdf(filename_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)
except Exception as e:
print("Could not add image", fp)
print(e)
logger.warning(f"Could not add image under filepath {fp}: {e}.")
def scale_pdf_page_to_a4(page):

@ -291,7 +291,6 @@ def register(request):
new_member.send_upload_registration_form_link()
return HttpResponseRedirect(reverse('members:upload_registration_form') + "?key=" + new_member.upload_registration_form_key)
except ValueError as e:
print("value error", e)
# when input is invalid
if pwd:
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 decimal import Decimal, ROUND_HALF_DOWN
import unicodedata
import logging
logger = logging.getLogger(__name__)
def file_size_validator(max_upload_size):
@ -50,7 +52,7 @@ class RestrictedFileField(models.FileField):
'{}').format(self.max_upload_size,
f._size))
except AttributeError as e:
print(e)
logger.warning(e)
return data

Loading…
Cancel
Save