Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Log errors during faculty processing #659

Merged
merged 3 commits into from
Apr 24, 2024
Merged
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 6 additions & 2 deletions main/models.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,12 @@
import logging

from django.contrib.auth import get_user_model
from django.contrib.auth.models import User
from django.db import models
from django.utils.translation import ugettext_lazy as _

logger = logging.getLogger("ethics.main")


class YesNoDoubt(models.TextChoices):
YES = "Y", _("ja")
Expand Down Expand Up @@ -159,6 +163,6 @@ def process_faculties(self, faculties):
continue

faculty_obj.users.add(self)
except:
# Just ignore any errors...
except Exception as e:
logger.error(f"Error processing faculty for user: {e}", exc_info=True)
Copy link
Contributor

@miggol miggol Apr 23, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I kind of half-remember it being best practice to not format log strings actively, but to use the formatting provided by logger.error() itself. Like that the logging handlers and formatters can work their magic.

But I can't find a reference to that anywhere so it might not even be the case anymore. Not a blocking issue either way.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just to add my 5 cents here (I don't know why I'm getting email notifications from this PR): Pylint was mad at me last week for using f-strings instead of the old format: https://stackoverflow.com/questions/34619790/pylint-message-logging-format-interpolation. Maybe you are thinking about that?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah y'all are right that this isn't the ideal/correct way to do this. (One point not even mentioned is me formatting an exception into a string, which is definitely the worse offense here actually).

The method I used (f-strings) was me being lazy. The reason (doing it at all) was because I wasn't sure if Sentry would correctly capture the whole exception context. (That's what exc_info does btw).

I just did a local test, and it does! As this makes the string-format unnecessary, I removed it

continue
Loading