diff --git a/src/documents/loggers.py b/src/documents/loggers.py index fd20e1288..76dbe0163 100644 --- a/src/documents/loggers.py +++ b/src/documents/loggers.py @@ -1,9 +1,14 @@ import logging import uuid +from django.conf import settings + class PaperlessHandler(logging.Handler): def emit(self, record): + if settings.DISABLE_DBHANDLER: + return + # We have to do the import here or Django will barf when it tries to # load this because the apps aren't loaded at that point from .models import Log diff --git a/src/documents/tests/test_logger.py b/src/documents/tests/test_logger.py index 6e240ffc9..bbc9c2b5d 100644 --- a/src/documents/tests/test_logger.py +++ b/src/documents/tests/test_logger.py @@ -2,7 +2,7 @@ import logging import uuid from unittest import mock -from django.test import TestCase +from django.test import TestCase, override_settings from ..models import Log @@ -14,6 +14,7 @@ class TestPaperlessLog(TestCase): self.logger = logging.getLogger( "documents.management.commands.document_consumer") + @override_settings(DISABLE_DBHANDLER=False) def test_that_it_saves_at_all(self): kw = {"group": uuid.uuid4()} @@ -38,6 +39,7 @@ class TestPaperlessLog(TestCase): self.logger.critical("This is a critical message", extra=kw) self.assertEqual(Log.objects.all().count(), 5) + @override_settings(DISABLE_DBHANDLER=False) def test_groups(self): kw1 = {"group": uuid.uuid4()} diff --git a/src/paperless/settings.py b/src/paperless/settings.py index 1432dc5ec..4847d7bce 100644 --- a/src/paperless/settings.py +++ b/src/paperless/settings.py @@ -250,6 +250,8 @@ USE_TZ = True # Logging # ############################################################################### +DISABLE_DBHANDLER = __get_boolean("PAPERLESS_DISABLE_DBHANDLER") + LOGGING = { "version": 1, "disable_existing_loggers": False, diff --git a/src/setup.cfg b/src/setup.cfg index b540f9efe..f43c9adf6 100644 --- a/src/setup.cfg +++ b/src/setup.cfg @@ -5,8 +5,7 @@ exclude = migrations, paperless/settings.py, .tox, */tests/* DJANGO_SETTINGS_MODULE=paperless.settings addopts = --pythonwarnings=all --cov --cov-report=html env = - PAPERLESS_SECRET=paperless - PAPERLESS_EMAIL_SECRET=paperless + PAPERLESS_DISABLE_DBHANDLER=true [coverage:run]