django_logtail 0.3.0
A log viewing and tailing utility accessible via a Django admin panel
License: The MIT License
Keywords: django admin logfile viewer tail log

==============
django_logtail
==============

Introduction
============

Logtail allows you to view logfiles for your django project via your django
admin, and will also provide you with a live tail of the logfiles using ajax
polling - and therefore without the need for a long-running django process.

Django 1.4+ compatible.

See Also: https://pypi.python.org/pypi/django_logtail

Installation and Use
====================

Django logtail takes a dictionary from your settings.py as follows::

    LOGTAIL_FILES = {
        'apache': '/var/www/www.foo.com.log',
        'django': '/var/log/www.foo.com/project.log',
    }

Add it via your installed apps::

    INSTALLED_APPS = (
        ...
        'django_logtail',
    )


Then absolutely ensure that the user that your django process runs as (whether
it's via wsgi, fastcgi, django runserver for debugging, or something else) has
permission to read all of the files in your LOGTAIL_FILES list.

logtail should then appear in your admin, and provide access to these files -
including a live tail of the file. Note that files will not appear if the
django process cannot access them.

Other Settings
==============

You can set the default update interval for the log tailing::

    LOGTAIL_UPDATE_INTERVAL = 50000 # Default is 3000 (three second)

Developing
==========

You can build a development environment using the following instructions::

    virtualenv venv --distribute
    source venv/bin/activate
    pip install -e .
    python manage.py syncdb
    python manage.py runserver

Logtail ``dumpdata`` Issue
==========================

If you use ``python manage.py dumpdata``, be sure to add the
``--exclude=logtail`` flag to your command or you'll be presented with a::

    CommandError: Unable to serialize database: relation "django_logtail_log" does not exist
    LINE 1: SELECT "django_logtail_log"."id" FROM "django_logtail_log" O...

traceback when you run the dumpdata command. This is because django_logtail
needs to pretend that it has a model called ``Log`` when registering with the
django admin site (``ModelAdmin`` objects can't exist without being bound to a
``Model``).

``syncdb`` will still work however, because the pretend model is marked as
``managed = False``.


============================
Changelog for django_logtail
============================

0.3.0 (2016-10-23)
------------------

- Add Django 1.10 and Python 3.5 compatibility (thanks @AlJohri)


0.2.0 (2013-12-11)
------------------

- Django 1.6 compatibility


0.1.1 (2013-05-26)
------------------

- Add the static folder to the MANIFEST.in


0.1.0 (2013-05-26)
------------------

- Adding ``django_logtail.urls`` to your project's ``ROOT_URLCONF`` is no
  longer necessary. All log tailing functionality has been moved to the
  ``ModelAdmin`` class in the form of the URLs and views.
- Now that the view is served from the ModelAdmin, use the Media class to define
  jquery dependency, and use django's built-in jquery object rather than using a
  CDN.
- Added example/ project for easier testing.
- Update documentation.


0.0.6 (2013-03-20)
------------------

- Use a CDN that does not serve gateway timeouts (mediatemple -> google)


0.0.5 (2013-03-20)
------------------

- Load the jquery js over https where required using a protocol-relative url.


0.0.4 (2012-12-20)
------------------

- Improved the quality of the javascript polling code
- The default poll time is now three seconds, rather than every one
- Now Django 1.3+ compatible (@victorgp)


0.0.3 (2012-08-16)
------------------

- Add the ability to turn off polling (@scott-w)


0.0.2 (2012-05-04)
------------------

- Escape log text to prevent html element lookalikes screwing up the formatting.


0.0.1 (2012-04-22)
------------------

- Update the package MANIFEST.in to ensure that the README and changelog are
  included.


0.0.0 (2012-04-22)
------------------

- Initial release.