Django Tests | Logging & Exceptions

Django suports testing activities like logging, debugging and exception handling. We can capture error logs at various severity level in text format under a log file.

Django Logging

Django can capture and classify logs using Python logging module. A log file has elements like: Log_level: Logger_name: Message.

Logging configuration consists of four parts:

  • Loggers: It is like entry point of logging configuration. Loggers are named bucket in which messages can be written.
    There are levels of logging that defines severity of the message:
    • DEBUG: It captures low level and verbose system information for debugging purposes. Logging level DEBUG can also be applied with value 10.
    • INFO: It captures general system information. Logging level INFO can also be applied with value 20.
    • WARNING: It captures information describing a minor problem or warning. Logging level WARNING can also be applied with value 30.
    • ERROR: It captures information describing a major problem in a code structure. Logging level ERROR can also be applied with value 40.
    • CRITICAL: It captures information describing a critical or fatal problem. Logging level CRITICAL can also be applied with value 50.

  • Handlers: It determines what happens to each message in a logger.

  • Filters: A filter can provide additional control over which log records need to be passed from logger to handler.

  • Formatters: A log record is finally rendered as text. Formatters do the formatting of python objects into text.

To implement logging, simply write the code below in settings.py

    LOGGING = {
        'version': 1,
        'disable_existing_loggers':False,
        'handlers':{
            'console':{
                'class':'logging.StreamHandler',
            },
            'file':{
                'class':'logging.FileHandler',
                'filename':'programink.log',
            },
        },
        'root':{
            'handlers':['console', 'file'],
            'level':'DEBUG',
        },
    }
                                

Django Exceptions

Exceptions is Django are as below:

  • AppRegistryNotReady
  • ObjectDoesNotExist
  • EmptyResultSet
  • FieldDoesNotExist
  • MultipleObjectsReturned
  • SuspiciousOperation
  • PermissionDenied
  • ViewDoesNotExist
  • MiddlewareNotUsed
  • ImproperlyConfigured
  • FieldError
  • ValidationError
  • UnreadablePostError
  • TransactionManagementError
  • DatabaseError
  • IntegrityError
  • DataError
  • Resolver404
  • NoReverseMatch