Filter Logs by Level
A snippet showing how to filter logs by level in Django.
# settings.py
LOGGING = {
"version": 1,
"disable_existing_loggers": False,
"filters": {
"only_warnings_and_above": {
"()": "django.utils.log.CallbackFilter",
"callback": lambda record: record.levelno >= 30, # WARNING and above
}
},
"handlers": {
"console_warn": {
"class": "logging.StreamHandler",
"filters": ["only_warnings_and_above"],
},
},
"root": {"handlers": ["console_warn"], "level": "DEBUG"},
}
# example in a view
from django.http import HttpResponse
import logging
logger = logging.getLogger(__name__)
def my_view(request):
logger.debug("This will NOT appear")
logger.warning("This WILL appear")
return HttpResponse("Hello, world!")
Explanation:
- Filters run after the logger level check; use them to fine-tune output per handler.
- Only WARNING/ERROR/CRITICAL messages are printed to the console.
- Category Logging
- Total Views 514
- Last Modified 20 July, 2026
- Tags #logging #filter #level #debug
Previous snippet
Rotating File Handler Example
Next snippet