A collection of logging and helpers for KN.
Project description
kn-defaults
Vision:
This project shall contains
- A Logging helper module in the form of Middleware, Decorator, and a helper function
- 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:
- Logging Helpers
- Checks ...
Usage:
Logging Usage
- Add
kn_defaults.logging
to INSTALLED_APPS - Add
'kn_defaults.logging.middlewares.KnLogging'
to yourMIDDLEWARE
- 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
- request_id : a unique if of the request to help traceback any logs associated with that specific request
- method: GET/POST/ etc..
- path: the request.path (ie url) which originated the log
- ip
- user: the request.user if the user is authenticated, None otherwise.
- status_code: the response status code
- outbound_payload: The plain response the view sent back
- response_duration: How much time in seconds it took to generate a response back to the user
- 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
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 settingDISABLE_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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.