log4django is full features logging platform for django applications. The project is in very early stage, so excuse the brief documentation.
- python 2.7
- packages listed in setup.py
Install via pipy or copy this module into your project or into your PYTHON_PATH.
In your settings.py file:
Add log4django into INSTALLED_APPS. :
INSTALLED_APPS = (
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.admin',
'django.contrib.sitemaps',
'debug_toolbar',
'log4django'
)
Add log4django INTO CONTEXT_PROCESSORS. :
TEMPLATE_CONTEXT_PROCESSORS = (
'django.contrib.auth.context_processors.auth',
'django.core.context_processors.debug',
'django.core.context_processors.i18n',
'django.core.context_processors.media',
'django.core.context_processors.static',
'django.core.context_processors.tz',
'django.core.context_processors.request',
'django.contrib.messages.context_processors.messages',
'log4django.context_processors.log4django'
)
Configure your logging with log4django appender. :
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'handlers': {
'log4django': {
'level': 'DEBUG',
'class': 'log4django.handlers.ModelHandler' # Synchronous log creations.
},
'log4django_async': {
'level': 'DEBUG',
'class': 'log4django.handlers.GearmanHandler' # Asynchronous log creations, doesn't block.
}
},
'loggers': {
'': {
'handlers': ['log4django_async'],
'level': 'DEBUG'
}
}
}
django settings.py constants with default values.
LOG4DJANGO_PAGE_TITLE = 'log4django'
LOG4DJANGO_CONNECTION_NAME = 'default'
LOG4DJANGO_DEFAULT_APP_ID = None # If you have only one app, put App.pk here
LOG4DJANGO_GEARMAN_TASK_NAME = 'log4django_event'
LOG4DJANGO_PAGE_SIZE = 100 # How many records to display on one page.
LOG4DJANGO_PAGINATOR_RANGE = 15 # How many pages to show in pagination.
LOG4DJANGO_EXTRA_DATA_INDENT = 4 # Extra data json indentation.
LOG4DJANGO_AUTHENTICATION_PIPELINE', (
'log4django.pipeline.authentication.is_logged',
)) # Basic authentication
'LOG4DJANGO_PERSISTATION_PIPELINE', (
'log4django.pipeline.process_bundle_data.persist_record',
)) # Controlls how records are persisted.
LOG4DJANGO_CSV_EXPORT_EXTRA_JSON_PATHS = tuple() # List of json paths to include in csv export.
LOG4DJANGO_CSV_DOWNLOAD_FILE_NAME = 'log4django.csv'
$ ./scripts/setup.sh
$ python manage.py syncdb --noinput
$ python manage.py test log4django
$ python manage.py runserver
Tested on evnironment
- Linux Mint 15 Olivia 64-bit
- python 2.7.4
- python unitest
Running tests
To run the tests, execute one of the following command::
$ python manage.py test log4django