No matter how much logging you collect from other sources, some issues can only be diagnosed with application-level logging. As your application scales and you experience more crashing servers, network failures, and intermittent bugs, logs become even more important. Beyond application details, logs can even include business intelligence data to help you make improved business decisions.
Like most developers, you’ve probably seen the benefits of logging first-hand—the right log message can be the key to unlocking the trickiest of software issues. But not all logging is created equal and actionable logs don’t magically appear. If you want the very best logs, you need to optimize your logging using tried-and-true best practices.
If there’s one thing developers can’t get enough of, it’s tools. Azure, the cloud computing platform from Microsoft, offers over 100 services and tools for building infrastructure and running software apps. Each of these services produces log files in various formats, containing a slew of important details such as service health and status, performance metrics, and resource access requests—everything developers need to monitor Azure and keep their apps running smoothly.
Life would be much simpler if applications running inside containers always behaved correctly. Unfortunately, as every sysadmin and developer knows, that is never the case. When things inevitably start going wrong you need diagnostic information to figure out how and why. Being able to gather useful information from your Docker container logs can mean the difference between a minor issue and a critical outage.