Skip to main content

A collection of logging and helpers for KN.

Project description

kn-defaults

Vision:

This project shall contains

  1. A Logging helper module in the form of Middleware, Decorator, and a helper function
  2. A Utility collection that can help with everyday tasks

Installation:

You can install via pip install -e git+git@github.com:KuwaitNET/kn-defaults.git#egg=django-kn-defaults

Components:

  1. Logging Helpers
  2. Checks ...

Usage:

Logging Usage

  • Add kn_defaults.logging to INSTALLED_APPS
  • Add 'kn_defaults.logging.middlewares.KnLogging' to your MIDDLEWARE
  • Hook the logging configurations. (example below)
  • For middleware logging: Mark your url names to be logged by the setting KN_LOGGING_URL_PATTERNS

Logging Adjustments:

You can do that by simply integrating the kn BASE_LOGGING dict with your project.

from kn_defaults.logging.defaults import BASE_LOGGING

BASE_LOGGING.update({
        # Your extra logging configurations goes here
        })

LOGGING = BASE_LOGGING

If you have a logging config already, you can merge it with BASE_LOGGING by hand. Check kn_defaults.logging.defaults for information

Middleware logging Settings:

KN_LOGGING_URL_PATTERNS: a list of the url names to be logged by the middleware. This list can accept a namespace url with an * to denote to log all urls under that namespace.

KN_LOGGING_URL_PATTERNS = [
    'url_name',
    'namespace:url_name',
    'namespace2:*'
]

The information being stored with the middleware logging

  1. request_id : a unique if of the request to help traceback any logs associated with that specific request
  2. method: GET/POST/ etc..
  3. path: the request.path (ie url) which originated the log
  4. ip
  5. user: the request.user if the user is authenticated, None otherwise.
  6. status_code: the response status code
  7. outbound_payload: The plain response the view sent back
  8. response_duration: How much time in seconds it took to generate a response back to the user
  9. post_parameters: the POST information. This respects Django's sensitive parameters decorator

Logging Helper function:

Sample usage looks like this

from kn_defaults.logging.defaults import log

log(level=10, msg='Message here')

The helper logging is ready for use out of the box. It uses a handler called 'default', which logs all to '<CUR_DIR>/log.log'. The log helper function also logs the local variables in the calling function.

For level names here is a map.

CRITICAL = 50
ERROR = 40
WARNING = 30
INFO = 20
DEBUG = 10

function decorator Logging Helper:

from kn_defaults.logging.defaults import logging_decorator

@logging_decorator(level=10, msg='')
def function(arg_1=True, *args, **kwargs):
    pass

Settings:

KN_LOG_FILE_SIZE Control the log file size. Defaults to 5 MB.


Helpers

  1. cms_plugin_change_admin_log logs django-cms plugins addition/ update and delete to the regular admin log. In case of a change action, it logs the changed fields and their values before and after. It's automatically activated if 'cms' is in INSTALLED_APPS unless disabled by the setting DISABLE_CMS_PLUGIN_CHANGE_ADMIN_LOG

Creating a release

The package version is controlled by kn_defaults.init.version . and preparing the sdist is by python setup.py sdist

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

django-kn-defaults-0.2.tar.gz (10.4 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page