Fork me on GitHub

Logging

Logging saves output such as errors, warnings and event information to files for debugging purposes.

Why is logging important?

Runtime exceptions that prevent code from running are important to log to investigate and fix the source of the problems. Informational and debugging logging also helps to understand how the application is performing even if code is working as intended.

Logging levels

Logging is often grouped into several categories:

  1. Information
  2. Debug
  3. Warning
  4. Error

Logging errors that occur while a web framework is running is crucial to understanding how your application is performing.

Logging Aggregators

When you are running your application on several servers, it is helpful to have a monitoring tool called a "logging aggregator". You can configure your application to forward your system and application logs to one location that provides tools for viewing, searching, and monitoring logging events across your cluster.

Another advantage of log aggregatortion tools is they allow you to set up custom alerts and alarms so you can get notified when error rates breach a certain threshold.

Open Source Log Aggregators

  • Raven is a Python client for the Sentry exception logging and aggregation application. Raven can also be used by Python scripts to send other log data to Sentry for aggregation. Sentry provides a clean web application interface for viewing the exceptions.

  • 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 programatically 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 messagaing format so it can be used with any language.

Hosted Log Aggregator Services

  • Loggly 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.

  • Papertrail Paper trail is similar to both loggly and splunk and provides integration with S3 for long term storage.

  • Splunk Splunk offers third party cloud and self hosted solutions for event aggregation. It excells at searching and data mining any text based data.

  • 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.

Logging resources

Logging learning checklist

Read how to integrate logging into your web application framework.

Ensure errors and anomalous results are logged. While these logs can be stored in monitoring solutions, it's best to have your own log storage location to debug issues as they arise to complement other monitoring systems.

Integrate logging for system events you may need to use for debugging purposes later. For example, you may want to know the return values on functions when they are above a certain threshold.

Logging isn't enough. How do I analyze more data about the app?

How can I monitor my live app with tools other than just logs?

I want to learn more about the users of my application.

Something in the logs looks strange. How do I learn about security?


对Full Stack Python这本书很感兴趣?想要一本包含代码、详细教程的完整版吗?那么用邮箱订阅吧。一旦完成了我就会发给你的,别担心除了订阅确认邮件,我是不会给你发乱七八糟的邮件的。