GeezerVisonThe World Wide Web, restored to 800 pixels of glory. |
| Home|About|Gaming cabinet|Archives|How it works|Starter sites |
GeezerVison is showing github.com — fullstackpython.github.com/logging.html at gh-pages · xidianwlc/fullstackpython.github.com Expand file tree/ Copy pathlogging.htmlMore file actions 283 lines (278 loc) · 14.3 KB / Copy pathlogging.htmlFile metadata and controls283 lines (278 loc) · 14.3 KB 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 <!DOCTYPE html> <html lang="en"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="description" content="Full Stack Python explains each layer of the web application stack, from the server up through the rendering in a user's browser."> <meta name="author" content="Matt Makai"> <link rel="shortcut icon" href="theme/img/fsp-fav.png"> <title>Logging - Full Stack Python</title> <link href="theme/css/fsp.css" rel="stylesheet"> <!--[if lt IE 9]> <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script> <script src="https://oss.maxcdn.com/libs/respond.js/1.3.0/respond.min.js"></script> <![endif]--> <style> html, body { font-size: 18px; color: #222; background: #fefefe; } body { padding-top: 10px; } .footer { padding: 20px 0 30px 0; } a, a:hover {border-bottom: 1px dotted; color: #444;} a:hover {text-decoration: none; color: #000;} .logo-title a, .logo-title a:hover {font-size: 72px; font-weight: normal; letter-spacing: .04em; vertical-align: middle; margin-left: 5px; color: #000; text-decoration: none; border-bottom: none; font-family: "Helvetica Neue", sans-serif; line-height: .9em;} .logo-title a:hover {color: gray;} .logo-image {vertical-align: middle; border: none;} .logo-header-section {margin: 15px 0 15px 0;} a.list-group-item.active {background: #444; border: 1px solid #222;} a.list-group-item.active:hover {background: #444; border: 1px solid #222;} #sidebar {margin-top: 30px;} .select-next { min-height: 300px; } .choose-btn { font-size: 1.1em; margin: 10px 0 0 0; } .choose-next { border: 1px solid black; background-color: #444; margin-left: 25px; color: #ddd; } .choose-next a { color: #eee; } .btn-full {width: 100%; box-shadow: 1px 2px 1px #222;} p.under-btn {text-align: left; margin-top: 20px;} h3.panel-head {margin: 5px 0 0 0; font-size: 26px; color: #fff;} .smaller-item {font-size: .8em; padding: 5px 0 5px 10px;} @media (max-width: 1200px) { h3.panel-head {font-size: 22px;} } @media (max-width: 992px) { .choose-next { margin-left: 0px; } .select-next { min-height: 100px; } .smaller-item {font-size: 1em; padding: 15px 0 15px 10px;} } @media (max-width: 600px) { .logo-header-section { margin: 20px 32px 0 0; } } </style> <link href="//netdna.bootstrapcdn.com/font-awesome/4.0.3/css/font-awesome.css" rel="stylesheet"> <script type="text/javascript"> var _gaq = _gaq || []; _gaq.push(['_setAccount', 'UA-19910497-7']); _gaq.push(['_trackPageview']); (function() { var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); })(); </script> </head> <body> <a href="https://github.com/makaimc/fullstackpython.github.com" class="github"> <img style="position: absolute; top: 0; right: 0; border: 0;" src="http://s3.amazonaws.com/github/ribbons/forkme_right_darkblue_121621.png" alt="Fork me on GitHub" /> </a> <div class="container"> <div class="row"> <div class="col-md-12"> <div class="logo-header-section"> <a href="/" style="text-decoration: none; border: none;"><img src="theme/img/fsp-logo.png" height="52" width="52" class="logo-image" style="padding-top: 1px;"/></a> <span class="logo-title"><a href="/">Full Stack Python</a></span> </div> </div> </div> <div class="row"> <div class="col-md-8"> <h1>Logging</h1> <p>Logging is a mechanism for monitoring web applications written with a web framework. 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.</p> <p>Logging is often grouped into several categories:</p> <ol> <li>Information</li> <li>Debug</li> <li>Warning</li> <li>Error</li> </ol> <p>Logging errors that occur while a web framework is running is crucial to understanding how your application is performing. <a href="http://raven.readthedocs.org/en/latest/">Raven</a> is a Python client for the <a href="https://github.com/getsentry/sentry">Sentry</a> exception logging and aggregation application. Raven provides the way to send exceptions to Sentry, which should be deployed on a separate server from your production infrastructure. 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. Sentry can also be configured with a mail plugin to send emails when exceptions occur.</p> <h2>Logging Aggregators</h2> <p>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. </p> <p>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.</p> <h3>Log Aggregator Third Party Services</h3> <ul> <li><a href="https://www.loggly.com/">loggly</a> 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. </li> <li><a href="https://papertrailapp.com/">papertrail</a> Paper trail is similar to both loggly and splunk and provides integration with S3 for </li> <li><a href="http://www.splunk.com/">splunk</a> Splunk offers third party cloud and self hosted solutions for event aggregation. It excells at searching and data mining any text based data. </li> </ul> <h3>Open Source Log Aggregators</h3> <ul> <li><a href="http://graylog2.org/">Graylog2</a> 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 elasicache.</li> <li><a href="http://logstash.net/">Logstash</a> Similar to Graylog2, logstash offers features to programatically configure log data workflows.</li> <li><a href="https://github.com/facebook/scribe">Scribe</a> 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. </li> </ul> <h2>Logging resources</h2> <ul> <li> <p>This <a href="http://www.blog.pythonlibrary.org/2012/08/02/python-101-an-intro-to-logging/">intro to logging</a> presents the Python logging module and how to use it.</p> </li> <li> <p><a href="http://www.hybridcluster.com/blog/logging-storytelling/">Logging as Storytelling</a> 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. <a href="http://www.hybridcluster.com/blog/logging-storytelling-lets-add-action/">Part 2 describes actions</a> and <a href="http://www.hybridcluster.com/blog/logging-storytelling-3-types/">part 3 talks about types</a>.</p> </li> </ul> <h3>Logging isn't enough. How do I analyze more data about the app?</h3> <div class="row"> <div class="col-md-3"> <div class="well select-next"> <a href="/monitoring.html" class="btn btn-success btn-full"><i class="fa fa-bar-chart-o fa-inverse fa-2x"></i></a> <p class="under-btn"> How do I monitor my app besides just the log files? </p> </div> </div> <div class="col-md-3"> <div class="well select-next"> <a href="/web-analytics.html" class="btn btn-success btn-full"><i class="fa fa-dashboard fa-2x"></i></a> </a> <p class="under-btn"> I want to learn more about the users of my application. </p> </div> </div> <div class="col-md-3"> <div class="well select-next"> <a href="/web-application-security.html" class="btn btn-success btn-full"><i class="fa fa-lock fa-inverse fa-2x"></i></a> <p class="under-btn"> Something in the logs looks strange. How do I learn about security? </p> </div> </div> <div class="col-md-3"> <div class="well select-next"> <a href="/configuration-management.html" class="btn btn-success btn-full"><i class="fa fa-gears fa-inverse fa-2x"></i></a> <p class="under-btn"> How do I automate the server configuration I've set up? </p> </div> </div> </div> </div> <div class="col-md-offset-1 col-md-3" id="sidebar"> <div class="panel panel-success"> <div class="panel-heading"><h3 class="panel-head">Logging</h3></div> <div class="panel-body"> <a href="/">Full Stack Python</a> is an open source book explaining each layer of the Python web application stack along with the best Python resources from around the web. <hr/> <a href="http://twitter.com/mattmakai">Matt Makai</a> designed and wrote this site with assistance from community pull requests. If you're on GitHub you can <a href="https://github.com/makaimc">follow him</a> to see what daily changes are made or <a href="https://github.com/makaimc/fullstackpython.github.com">star the repository</a> for future reference. </div> </div> <div class="panel panel-success"> <div class="panel-heading"> <h3 class="panel-head">Table of Contents</h3> </div> <div class="list-group"> <a href="/introduction.html" class="list-group-item smaller-item ">Introduction</a> <a href="/bottle.html" class="list-group-item smaller-item ">Bottle</a> <a href="/deployment.html" class="list-group-item smaller-item ">Deployment</a> <a href="/other-web-frameworks.html" class="list-group-item smaller-item ">Other Web Frameworks</a> <a href="/servers.html" class="list-group-item smaller-item ">Servers</a> <a href="/web-frameworks.html" class="list-group-item smaller-item ">Web Frameworks</a> <a href="/django.html" class="list-group-item smaller-item ">Django</a> <a href="/operating-systems.html" class="list-group-item smaller-item ">Operating Systems</a> <a href="/flask.html" class="list-group-item smaller-item ">Flask</a> <a href="/web-servers.html" class="list-group-item smaller-item ">Web Servers</a> <a href="/platform-as-a-service.html" class="list-group-item smaller-item ">Platform-as-a-service</a> <a href="/databases.html" class="list-group-item smaller-item ">Databases</a> <a href="/wsgi-servers.html" class="list-group-item smaller-item ">WSGI Servers</a> <a href="/application-dependencies.html" class="list-group-item smaller-item ">Application Dependencies</a> <a href="/cascading-style-sheets.html" class="list-group-item smaller-item ">Cascading Style Sheets</a> <a href="/javascript.html" class="list-group-item smaller-item ">JavaScript</a> <a href="/static-content.html" class="list-group-item smaller-item ">Static Content</a> <a href="/source-control.html" class="list-group-item smaller-item ">Source Control</a> <a href="/caching.html" class="list-group-item smaller-item ">Caching</a> <a href="/task-queues.html" class="list-group-item smaller-item ">Task Queues</a> <a href="/api-integration.html" class="list-group-item smaller-item ">API Integration</a> <a href="/no-sql-datastore.html" class="list-group-item smaller-item ">NoSQL Data Stores</a> <a href="/web-application-security.html" class="list-group-item smaller-item ">Web Security</a> <a href="/logging.html" class="list-group-item smaller-item active">Logging</a> <a href="/monitoring.html" class="list-group-item smaller-item ">Monitoring</a> <a href="/configuration-management.html" class="list-group-item smaller-item ">Configuration Management</a> <a href="/web-analytics.html" class="list-group-item smaller-item ">Web Analytics</a> <a href="/best-python-resources.html" class="list-group-item smaller-item ">Best Python Resources</a> <a href="/about-author.html" class="list-group-item smaller-item ">About the Author</a> <a href="/change-log.html" class="list-group-item smaller-item ">Change Log</a> <a href="/future-directions.html" class="list-group-item smaller-item ">Future Directions</a> </div> </div> </div></div> <hr/> <div class="footer pull-right"> <a href="http://www.mattmakai.com/" class="underline">Matt Makai</a> 2014 </div> </div> <script src="http://code.jquery.com/jquery-2.1.0.min.js"></script> <script src="theme/js/bootstrap.min.js"></script> </body> </html> |
| You are visitor 01402520 — GeezerVison does not store the pages you look up. Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required. |