{ "info": { "author": "Fairview Computing LLC", "author_email": "john@fairviewcomputing.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Environment :: Web Environment", "Framework :: Django", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python", "Topic :: System :: Logging" ], "description": "============\ndjango-peavy\n============\n\n``django-peavy`` is a tool for improving your Django application logging.\n\nFeatures\n--------\n\n* Middleware to tag each request with a unique ID.\n\n* Logging filters to capture request metadata like user, remote IP, and headers.\n\n* Logging handlers for:\n\n * Capturing exception information, including a copy of the Django server\n error page, in a database.\n\n * Sending error notifications to admins without revealing sensitive\n information like the contents of request.POST.\n\n* A database router for sending log records to a separate database.\n\n* A simple user interface for browsing log records in the database.\n\nInstallation\n------------\n\nStart with Django 1.3 or higher; peavy is intended for use with the new logging\nconfiguration first available in that version.\n\nTo install, simply run::\n\n pip install django-peavy\n\nConfiguration\n-------------\n\n1. Add ``peavy`` to your ``INSTALLED_APPS`` setting.\n\n2. Add the peavy database router::\n\n DATABASE_ROUTERS = ['peavy.routers.DjangoDBRouter']\n\n3. Create a dedicated database for logging.\n\n If you want to name it something other than 'peavy', you'll need to specify\n it in ``settings.PEAVY_DATABASE_NAME``.\n\n The separate database makes schema management a little trickier than usual.\n It needs to contain South's migration history table as well as Peavy's log\n records.\n\n So first, run syncdb on your default database::\n\n $ django-admin.py syncdb\n \n And of course if you have other apps using South, migrate them::\n\n $ django-admin.py migrate\n\n This will actually create peavy tables in your default database. Sorry for\n the debris; South isn't yet obeying database routers.\n \n Now on to peavy's database::\n\n $ django-admin.py syncdb --database=peavy\n\n Then run Peavy's South migrations::\n\n $ django-admin.py migrate peavy --database=peavy\n\n (Of course, if you chose a different name for the database, use that in\n these last two commands.)\n\n If you omit the app name, you may encounter errors with other apps whose\n migrations South tries to run.\n\n4. Add the logging configuration. For example::\n\n LOGGING = {\n 'version': 1,\n 'disable_existing_loggers': True,\n 'formatters': {\n 'default': {\n 'format': '[%(asctime)s %(name)s %(levelname)s] %(message)s'\n },\n 'basic': {\n 'format': '[%(asctime)s %(uuid)s %(user_pk)s:%(username)s %(name)s %(levelname)s] %(message)s'\n },\n 'meta': {\n 'format': '[%(asctime)s %(client_ip)s %(uuid)s %(user_pk)s:%(username)s %(name)s %(levelname)s] %(message)s'\n },\n },\n 'filters': {\n 'basic': {\n '()': 'peavy.filters.BasicFilter',\n },\n 'meta': {\n '()': 'peavy.filters.MetaFilter',\n }\n },\n 'handlers': {\n 'null': {\n 'level':'DEBUG',\n 'class':'django.utils.log.NullHandler',\n },\n 'console': {\n 'level':'DEBUG',\n 'class':'logging.StreamHandler',\n 'filters': ['basic', 'meta'],\n 'formatter': 'basic'\n },\n 'mail_admins': {\n 'level': 'ERROR',\n 'class': 'peavy.handlers.AdminEmailHandler',\n 'filters': ['basic', 'meta'],\n 'formatter': 'meta'\n },\n 'peavy': {\n 'level': 'INFO',\n 'class': 'peavy.handlers.DjangoDBHandler',\n 'filters': ['basic', 'meta'],\n 'formatter': 'meta'\n }\n },\n 'loggers': {\n 'django': {\n 'handlers': ['null'],\n 'propagate': True,\n 'level':'INFO',\n },\n 'django.request': {\n 'handlers': ['peavy', 'mail_admins'],\n 'level': 'ERROR',\n 'propagate': False,\n },\n 'myapp': {\n 'handlers': ['console', 'peavy'],\n 'level':'DEBUG',\n }\n }\n }\n\n5. Add ``peavy.middleware.RequestLoggingMiddleware`` to MIDDLEWARE_CLASSES.\n\n6. Add ``django.core.context_processors.request`` to TEMPLATE_CONTEXT_PROCESSORS.\n\nThe last two steps can be skipped if you don't want the UI.\n\n7. If desired, add ``peavy.urls`` to your URL configuration to get the UI::\n\n urlpatterns += patterns('',\n (r'^peavy/', include('peavy.urls', namespace='peavy')),\n )\n\n8. Run ``manage.py collectstatic`` to copy peavy's media into place.\n\nDemo Application\n----------------\n\nPeavy comes with an example application that demonstrates how to log with it,\nand lets you check out the UI. To run it:\n\n1. Create a virtualenv for it, then activate the virtualenv.\n\n2. Copy the example application from your copy of django-peavy into the virtualenv::\n\n $ rsync -av peavy_demo/ $VIRTUAL_ENV/peavy_demo/\n\n3. Install its requirements with pip::\n\n $ pip install -r $VIRTUAL_ENV/peavy_demo/requirements.txt\n\n4. Set up the PostgreSQL databases to match the Django settings (see step 2\n under Configuration, above). You can of course use another database, but it\n has to support concurrent transactions (so sqlite is out), and you'll have\n to adjust the settings and install the adapter yourself.\n\n5. Adjust your PYTHONPATH to pick up the demo app::\n\n $ export PYTHONPATH=$VIRTUAL_ENV:$PYTHONPATH\n\n6. Set the DJANGO_SETTINGS_MODULE environment variable::\n\n $ export DJANGO_SETTINGS_MODULE=peavy_demo.settings\n\n7. Run the devserver::\n\n $ django-admin.py runserver\n\n8. Browse to http://localhost:8000/, enter a movie quote, then check the logging\n at http://localhost:8000/peavy/.\n\nNotes\n-----\n\nQ. Why \"peavy\"?\nA. See http://en.wikipedia.org/wiki/Peavey_%28tool%29. It's a lumberjack tool,\nand it's OK. Oh, come on, it's *required*.\n\nFuture\n------\n\n* support for logging to other sinks: message queues, non-relational databases.", "description_content_type": null, "docs_url": null, "download_url": "http://github.com/fairview/django-peavy/downloads", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://github.com/fairview/django-peavy", "keywords": null, "license": "MIT License", "maintainer": null, "maintainer_email": null, "name": "django-peavy", "package_url": "https://pypi.org/project/django-peavy/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/django-peavy/", "project_urls": { "Download": "http://github.com/fairview/django-peavy/downloads", "Homepage": "http://github.com/fairview/django-peavy" }, "release_url": "https://pypi.org/project/django-peavy/0.9.0/", "requires_dist": null, "requires_python": null, "summary": "django-peavy makes it easy to collect and monitor Django application logging.", "version": "0.9.0" }, "last_serial": 743144, "releases": { "0.5.0": [ { "comment_text": "", "digests": { "md5": "16a43ba6eb21fb267bdf140e38c39d2c", "sha256": "107726b6629e7ec38bea3ba0d1816ed5c1ac0f3614bcba6d435ac8a9ee162ab4" }, "downloads": -1, "filename": "django-peavy-0.5.0.tar.gz", "has_sig": true, "md5_digest": "16a43ba6eb21fb267bdf140e38c39d2c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 105663, "upload_time": "2011-06-18T02:36:35", "url": "https://files.pythonhosted.org/packages/a7/e7/01c76b6d1410869db341ea19188f3352cdede49629451450c5895e954119/django-peavy-0.5.0.tar.gz" } ], "0.5.1": [ { "comment_text": "", "digests": { "md5": "1285b9c587366dd5f81352d6e58c819e", "sha256": "908f8f50c5bce9171e978efb13464797f030e5cf5b34636d9c11d39d2b7122d6" }, "downloads": -1, "filename": "django-peavy-0.5.1.tar.gz", "has_sig": false, "md5_digest": "1285b9c587366dd5f81352d6e58c819e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 105892, "upload_time": "2011-09-28T16:52:17", "url": "https://files.pythonhosted.org/packages/1e/44/fc43c7709e0f37b7fd21da918fe34cae74f0902d733207be96c8f00ae38a/django-peavy-0.5.1.tar.gz" } ], "0.6.1": [ { "comment_text": "", "digests": { "md5": "86008db3db532b442fa69801c6616a3f", "sha256": "515984d8152e99fed762afe587c87ef1e03d49792e1bd9385ff065a85b8960d9" }, "downloads": -1, "filename": "django-peavy-0.6.1.tar.gz", "has_sig": false, "md5_digest": "86008db3db532b442fa69801c6616a3f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 108716, "upload_time": "2011-10-11T00:44:01", "url": "https://files.pythonhosted.org/packages/0f/e9/41016811c9c4880b7b31bc6684d23a86e92614671b8d07768cc55801c77d/django-peavy-0.6.1.tar.gz" } ], "0.6.2": [ { "comment_text": "", "digests": { "md5": "6f34949704bbcfe87b18c9649b517c2f", "sha256": "35e13e9d2d73b33f32b29597d219e0b02e4d93c2cd9411e9959d8594870b7b7f" }, "downloads": -1, "filename": "django-peavy-0.6.2.tar.gz", "has_sig": false, "md5_digest": "6f34949704bbcfe87b18c9649b517c2f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 108796, "upload_time": "2011-10-11T03:27:33", "url": "https://files.pythonhosted.org/packages/5d/fa/695de1b6e3ae4558c34d0193836ac47e44a72cf367e5460db91595cce50b/django-peavy-0.6.2.tar.gz" } ], "0.7.0": [ { "comment_text": "", "digests": { "md5": "d3622586ddaa04d228881ace8a7c7b0b", "sha256": "aa4f05c4ef55a6fb46356a98632eacdbda6d604819084abc5b4960c858aa9410" }, "downloads": -1, "filename": "django-peavy-0.7.0.tar.gz", "has_sig": false, "md5_digest": "d3622586ddaa04d228881ace8a7c7b0b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 109485, "upload_time": "2011-10-11T21:02:22", "url": "https://files.pythonhosted.org/packages/a0/d5/39f6045bb7f51a760aefb404f95f44e159623dca132d4b3fd196838930eb/django-peavy-0.7.0.tar.gz" } ], "0.7.1": [ { "comment_text": "", "digests": { "md5": "21f23b76fe3ab3e31e4e81580f30c35b", "sha256": "0bbb16e06ed77188809eb22bbdf3f7365a2da309aafac96e2dc159e42211728f" }, "downloads": -1, "filename": "django-peavy-0.7.1.tar.gz", "has_sig": false, "md5_digest": "21f23b76fe3ab3e31e4e81580f30c35b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 109454, "upload_time": "2011-10-19T16:06:13", "url": "https://files.pythonhosted.org/packages/41/0c/9a9c33861eb481165de4c43155c4a7df69646e0ffd96f3f8a902acec6851/django-peavy-0.7.1.tar.gz" } ], "0.7.2": [ { "comment_text": "", "digests": { "md5": "19096fc7cb9bae382c5e7daa27dd54b4", "sha256": "187e58966e6389bff67112dc4135689b9b2887129f816c792767f37467168619" }, "downloads": -1, "filename": "django-peavy-0.7.2.tar.gz", "has_sig": false, "md5_digest": "19096fc7cb9bae382c5e7daa27dd54b4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 109450, "upload_time": "2011-11-04T16:48:38", "url": "https://files.pythonhosted.org/packages/bd/c4/51a38bafc653d02f00648767a655d7b05d5fc49e27b1eb9ed4a25886beed/django-peavy-0.7.2.tar.gz" } ], "0.8.0": [ { "comment_text": "", "digests": { "md5": "9b3251750e669a0108659333a65edff7", "sha256": "8982e3bd52aa996277f6d6cceb6e9dce5baf6dc7552641e073329d33909c1909" }, "downloads": -1, "filename": "django-peavy-0.8.0.tar.gz", "has_sig": false, "md5_digest": "9b3251750e669a0108659333a65edff7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 109972, "upload_time": "2011-11-09T22:08:36", "url": "https://files.pythonhosted.org/packages/d5/77/c877fbb7ba9f2cbcade6b270c2d2a05a6ae13c447ec0742f587e497719ba/django-peavy-0.8.0.tar.gz" } ], "0.8.1": [ { "comment_text": "", "digests": { "md5": "d0fabec3a52d4068512ea4179ef5e9c1", "sha256": "1f86495b060874db0f7e00c69e3cb9b7d5638478ec8566432e4a220c993592d4" }, "downloads": -1, "filename": "django-peavy-0.8.1.tar.gz", "has_sig": false, "md5_digest": "d0fabec3a52d4068512ea4179ef5e9c1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 109733, "upload_time": "2011-11-21T21:35:49", "url": "https://files.pythonhosted.org/packages/4b/36/a67bf787c67046a957fc2f8005291be52e19e2baf56a06072210c0721132/django-peavy-0.8.1.tar.gz" } ], "0.8.2": [ { "comment_text": "", "digests": { "md5": "6ac9f5cc9b0be9334731b33acdee03b1", "sha256": "e1db63220c50d5858c3834b158c747c470d547c7c259fc780c583e4f646d32b1" }, "downloads": -1, "filename": "django-peavy-0.8.2.tar.gz", "has_sig": false, "md5_digest": "6ac9f5cc9b0be9334731b33acdee03b1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 109827, "upload_time": "2012-03-10T22:00:17", "url": "https://files.pythonhosted.org/packages/f3/c9/d5d5093a68c52e33dbe7531f36b2992ac6ec7437a67515d2ac5d1b2c4159/django-peavy-0.8.2.tar.gz" } ], "0.8.3": [ { "comment_text": "", "digests": { "md5": "292475829dbe41250e762d1cf970871f", "sha256": "2bb2757306a30b8155d0895e27e8a4b4e3e9a0a2e8a52bbeb0877507be51913f" }, "downloads": -1, "filename": "django-peavy-0.8.3.tar.gz", "has_sig": false, "md5_digest": "292475829dbe41250e762d1cf970871f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 110061, "upload_time": "2012-03-30T14:47:34", "url": "https://files.pythonhosted.org/packages/bc/19/7edccbd65fe832af65ba462f8249f2d2fc93f22cfe0073d2e31fa2d74fa1/django-peavy-0.8.3.tar.gz" } ], "0.8.4": [ { "comment_text": "", "digests": { "md5": "38d509bebf437a16ba4bd24182cb54bd", "sha256": "92b116032d1664aea2adb07ae9fbcf6f6f789c4e76e52a3e872b7dec7aa3978b" }, "downloads": -1, "filename": "django-peavy-0.8.4.tar.gz", "has_sig": false, "md5_digest": "38d509bebf437a16ba4bd24182cb54bd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 110177, "upload_time": "2012-04-26T14:11:59", "url": "https://files.pythonhosted.org/packages/fd/63/8182f55d80e85881c57db27835f1a44b3c9493b82d55aab930c632e634a4/django-peavy-0.8.4.tar.gz" } ], "0.8.5": [ { "comment_text": "", "digests": { "md5": "53aac2c1dd8cdf442b6f8bbfb9830672", "sha256": "29e251da8a96658d21d7359987a8288b4ad86f7543e0e7f99778668d13a5bb35" }, "downloads": -1, "filename": "django-peavy-0.8.5.tar.gz", "has_sig": false, "md5_digest": "53aac2c1dd8cdf442b6f8bbfb9830672", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 110192, "upload_time": "2012-09-04T12:34:18", "url": "https://files.pythonhosted.org/packages/d0/70/e60038d18d28b153758a468a02f6cbde63b150e41af2c71025921d479fa2/django-peavy-0.8.5.tar.gz" } ], "0.9.0": [ { "comment_text": "", "digests": { "md5": "8c78e56dbcb3d5395feec59081638198", "sha256": "33be5433939d0a9179713ec398801a5a0605d82e666ee83c0803ae431f04a25c" }, "downloads": -1, "filename": "django-peavy-0.9.0.tar.gz", "has_sig": false, "md5_digest": "8c78e56dbcb3d5395feec59081638198", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 109615, "upload_time": "2013-02-08T20:04:21", "url": "https://files.pythonhosted.org/packages/24/10/be5b53e9d15887602d66b61184235cea0a0dd72820206db4c7bbe3cd0230/django-peavy-0.9.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "8c78e56dbcb3d5395feec59081638198", "sha256": "33be5433939d0a9179713ec398801a5a0605d82e666ee83c0803ae431f04a25c" }, "downloads": -1, "filename": "django-peavy-0.9.0.tar.gz", "has_sig": false, "md5_digest": "8c78e56dbcb3d5395feec59081638198", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 109615, "upload_time": "2013-02-08T20:04:21", "url": "https://files.pythonhosted.org/packages/24/10/be5b53e9d15887602d66b61184235cea0a0dd72820206db4c7bbe3cd0230/django-peavy-0.9.0.tar.gz" } ] }