- Sentry started as a Django-only exception handling service but now has separate logging clients to cover almost all major languages and frameworks. It still works really well for Python-powered web applications and is often used in conjunction with other monitoring tools. Raven is open source Python client for Sentry.
- Graylog2 provides a central server for log aggregation as well as a GUI for browsing and searching through log events. There are libraries for most major languages, including python. Saves data in Elasticache.
- Logstash Similar to Graylog2, logstash offers features to programmatically configure log data workflows.
- Scribe A project written by Facebook to aggregate logs. It’s designed to run on multiple servers and scale with the rest of your cluster. Uses the Thrift messaging format so it can be used with any language.
- Loggly is a third party cloud based application that aggregates logs. They have instructions for every major language, including python. It includes email alerting on custom searches.
- Splunk offers third party cloud and self hosted solutions for event aggregation. It excels at searching and data mining any text based data.
- Papertrail is similar to both Loggly and Splunk and provides integration with S3 for long term storage.
- Raygun logs errors and provides immediate notification when issues arise.
- Scalyr provides log aggregation, dashboards, alerts and search in a user interface on top of standard logs.
- There is a hosted version of Sentry in case you do not have the time to set up the open source project yourself.
- This intro to logging presents the Python logging module and how to use it.
- Logging as Storytelling is a multi-part series working the analogy that logs should read like a story so you can better understand what’s taking place in your web application. Part 2 describes actions and part 3 talks about types.
- A Brief Digression About Logging is a short post that gets Python logging up and running quickly.
- Taking the pain out of Python logging shows a logging set up with uWSGI.
- Good logging practice in Python shows how to use the standard library to log data from your application. Definitely worth a read as most applications do not log nearly enough output to help debuggin when things go wrong, or to determine if something is going wrong.
- Django’s 1.3 release brought unified logging into project configurations. This post shows how to set up logging in a project’s settings.py file. Caktus Group also has a nice tutorial on central logging with graypy and Graylog2.
- Django Logging Configuration: How the Default Settings Interfere with Yours explains a problem with the default Django logging configuration and what to do about in your project.
- Exceptional Logging of Exceptions in Python shows how to log errors more accurately to pinpoint the problem instead of receiving generic exceptions in your logs.