Metadata-Version: 1.1
Name: django-logutils
Version: 0.4.3
Summary: Various logging-related utilities for Django projects.
Home-page: https://github.com/jsmits/django-logutils
Author: Sander Smits
Author-email: jhmsmits@gmail.com
License: BSD
Description: =============================
        django-logutils
        =============================
        
        .. image:: https://badge.fury.io/py/django-logutils.png
            :target: https://badge.fury.io/py/django-logutils
        
        .. image:: https://travis-ci.org/jsmits/django-logutils.png?branch=master
            :target: https://travis-ci.org/jsmits/django-logutils
        
        .. image:: https://readthedocs.org/projects/django-logutils/badge/?version=latest
            :target: https://readthedocs.org/projects/django-logutils/?badge=latest
            :alt: Documentation Status
        
        .. image:: https://coveralls.io/repos/jsmits/django-logutils/badge.svg?branch=master&service=github
            :target: https://coveralls.io/github/jsmits/django-logutils?branch=master
        
        Various logging-related utilities for Django projects. For now, it provides
        a LoggingMiddleware class and an EventLogger class.
        
        Documentation
        -------------
        
        http://django-logutils.readthedocs.org
        
        Quickstart
        ----------
        
        Install django-logutils::
        
            pip install django-logutils
        
        LoggingMiddleware
        -----------------
        
        LoggingMiddleware is middleware class for Django, that logs extra
        request-related information. To use it in your Django projects, add it to
        your ``MIDDLEWARE_CLASSES`` setting::
        
            MIDDLEWARE_CLASSES = (
                ...
                'django_logutils.middleware.LoggingMiddleware',
                ...
            )
        
        The extra information consists of:
        
        - event (default: 'request')
        
        - remote ip address: the remote ip address of the user doing the request.
        
        - user email: the email address of the requesting user, if available
        
        - request method: post or get
        
        - request url path
        
        - response status code
        
        - content length of the response body
        
        - request time
        
        N.B.: event can be overriden by using the ``LOGUTILS_LOGGING_MIDDLEWARE_EVENT``
        setting in your project.
        
        The log message itself is a string composed of the remote ip address, the user
        email, the request method, the request url, the status code, the content
        length of the body and the request time. Additionally, a dictionary with the
        log items are added as an extra keyword argument when sending a logging
        statement.
        
        If settings.DEBUG is True or the request time is more than 1 second, two
        additional parameters are added to the logging dictionary: ``nr_queries`` that
        represents the number of queries executed during the request-response cycle
        and ``sql_time`` that represents the time it took to execute those queries.
        Slow requests are also raised to a loglevel of ``WARNING``.
        
        N.B.: the time threshold for slow requests can be overriden by using the
        ``LOGUTILS_REQUEST_TIME_THRESHOLD`` setting in your project.
        
        EventLogger
        -----------
        
        The EventLogger class makes it easy to create dictionary-based logging
        statements, that can be used by log processors like Logstash. Log events can be
        used to track metrics and/or to create visualisations.
        
        Here's an example of how you can use it::
        
            >>> from django_logutils.utils import EventLogger
            >>> log_event = EventLogger('my_logger')
            >>> log_event('my_event', {'action': 'push_button'})
        
        Development
        -----------
        
        Install the test requirements::
        
            $ pip install -r requirements/test.txt
        
        Run the tests to check everything is fine::
        
            $ make test
        
        To run the tests and opening the coverage html in your browser::
        
            $ make coverage
        
        To run flake8 and pylint, do::
        
            $ make lint
        
        To generate the documentation, do::
        
            $ make docs
        
        
        
        
        History
        -------
        
        
        0.4.3 (2017-05-11)
        ++++++++++++++++++
        
        - Make sure that log messages are aggregable by tools like Sentry.
        
        
        0.4.2 (2015-10-30)
        ++++++++++++++++++
        
        - Support StreamingHttpResponse that doesn't have content length. 
        
        
        0.4.1 (2015-08-21)
        ++++++++++++++++++
        
        - Add tests for app settings.
        
        
        0.4.0 (2015-08-20)
        ++++++++++++++++++
        
        - Make ``REQUEST_TIME_THRESHOLD`` a setting.
        
        
        0.3.1 (2015-08-04)
        ++++++++++++++++++
        
        - Update documentation.
        
        
        0.3.0 (2015-08-04)
        ++++++++++++++++++
        
        - Add ``EventLogger`` class.
        
        
        0.2.5 (2015-07-31)
        ++++++++++++++++++
        
        - Reach 100% test coverage.
        
        
        0.2.4 (2015-07-31)
        ++++++++++++++++++
        
        - Improve project structure. 
        
        
        0.2.3 (2015-07-30)
        ++++++++++++++++++
        
        - Add ``log_event`` utility function for logging events. 
        
        
        0.2.2 (2015-07-29)
        ++++++++++++++++++
        
        - Add ``add_items_to_message`` utility function.
        
        
        0.2.1 (2015-07-29)
        ++++++++++++++++++
        
        - More and better tests. 
        
        
        0.2.0 (2015-07-28)
        ++++++++++++++++++
        
        - Release replacing previous faulty dev release.
        
        
        0.1.0 (2015-07-28)
        ++++++++++++++++++
        
        * First release on PyPI.
        
Keywords: django-logutils
Platform: UNKNOWN
Classifier: Development Status :: 4 - Beta
Classifier: Framework :: Django
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: BSD License
Classifier: Natural Language :: English
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
