Custom Logger Example

A snippet showing how to create a custom logger in Django.


# settings.py

LOGGING = {
    "version": 1,
    "disable_existing_loggers": False,
    "formatters": {
        "verbose": {"format": "[{asctime}] {levelname} {name} - {message}", "style": "{"},
    },
    "handlers": {
        "console": {"class": "logging.StreamHandler", "formatter": "verbose"},
    },
    "loggers": {
        "shop.checkout": {
            "handlers": ["console"],
            "level": "DEBUG",
            "propagate": False,
        }
    },
}
      

# views.py

import logging
logger = logging.getLogger("shop.checkout")

def place_order(request):
    logger.debug("Starting checkout for user=%s", request.user.id)
    # ...
    logger.info("Order placed successfully")
      
Explanation:
  • Use dotted names (e.g., app.module) to create hierarchical logger trees.
  • Only messages from 'shop.checkout' use the configured handler/level.
  • Reduce noise by scoping logs to app- or module-specific names.
  • Category Logging
  • Total Views 507
  • Last Modified 02 June, 2026
  • Tags #logging #custom #logger #debug
Previous snippet
Basic Logging Configuration
Next snippet
Log to File Example
Never miss a story on Django.wiki

Subscribe for fresh tutorials, snippets, and updates.

By subscribing you agree to our Privacy Policy.