From a356134bf3f08c122ae48670e28ea8575710b132 Mon Sep 17 00:00:00 2001 From: fuchan12040502-innu Date: Sat, 18 Apr 2026 02:16:14 +0900 Subject: [PATCH] feat: implement Django logging integration and add example --- VersaLog/integrations/django.py | 18 ++++++++++++++++-- examples/django_log.py | 19 +++++++++++++++++++ 2 files changed, 35 insertions(+), 2 deletions(-) create mode 100644 examples/django_log.py diff --git a/VersaLog/integrations/django.py b/VersaLog/integrations/django.py index 8ae378c..f64ca02 100644 --- a/VersaLog/integrations/django.py +++ b/VersaLog/integrations/django.py @@ -1,5 +1,19 @@ -from .generic import setup_logging +import logging +from ..handler import VersaLogHandle def setup_django_logging(versalog): - setup_logging(versalog) \ No newline at end of file + handler = VersaLogHandler(versalog) + + root = logging.getLogger() + for h in root.handlers[:]: + root.removeHandler(h) + root.setLevel(logging.NOTSET) + root.addHandler(handler) + + for name in ["django", "django.request", "django.server", "django.db.backends"]: + logger = logging.getLogger(name) + for h in logger.handlers[:]: + logger.removeHandler(h) + logger.propagate = True + logger.setLevel(logging.NOTSET) \ No newline at end of file diff --git a/examples/django_log.py b/examples/django_log.py new file mode 100644 index 0000000..4b44a8e --- /dev/null +++ b/examples/django_log.py @@ -0,0 +1,19 @@ +# Example: Using VersaLog with Django +# +# In your settings.py, add: +# +# LOGGING_CONFIG = None # Disable Django's default logging config +# +# from VersaLog import VersaLog, setup_django_logging +# log = VersaLog(enum="detailed", show_tag=True, tag="Django") +# setup_django_logging(log) + +# views.py +from django.http import JsonResponse +import logging + +logger = logging.getLogger(__name__) + +def index(request): + logger.info("Hello from Django") + return JsonResponse({"msg": "ok"}) \ No newline at end of file