<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Logging on Ghafoor's Personal Blog</title><link>http://ghafoorsblog.com/tags/logging/</link><description>Recent content in Logging on Ghafoor's Personal Blog</description><generator>Hugo</generator><language>en</language><managingEditor>noreply@example.com (AG Sayyed)</managingEditor><webMaster>noreply@example.com (AG Sayyed)</webMaster><copyright>Copyright © 2024-2026 AG Sayyed. All Rights Reserved.</copyright><lastBuildDate>Sat, 16 May 2026 17:42:12 +0100</lastBuildDate><atom:link href="http://ghafoorsblog.com/tags/logging/index.xml" rel="self" type="application/rss+xml"/><item><title>Debugging Complex Systems</title><link>http://ghafoorsblog.com/courses/google/it-automation-content/it-automation-python-pcert/04-troubleshooting-debugging/04-module/009-complex-system/</link><pubDate>Thu, 13 Nov 2025 16:47:58 +0000</pubDate><author>noreply@example.com (AG Sayyed)</author><guid>http://ghafoorsblog.com/courses/google/it-automation-content/it-automation-python-pcert/04-troubleshooting-debugging/04-module/009-complex-system/</guid><description>&lt;p class="lead text-primary"&gt;
This document explores debugging techniques for complex distributed systems involving multiple services, covering systematic log analysis across service boundaries, identifying what changed between working and failing states, rollback strategies, load balancer troubleshooting, removing faulty servers from pools, and managing cloud-based infrastructure with resource limits and automated deployment pipelines.
&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="introduction"&gt;Introduction&lt;/h2&gt;
&lt;p&gt;Troubleshooting problems on a single computer differs significantly from debugging complex systems with many interacting services. When multiple computers and services work together to provide functionality, problems can arise from any component or their interactions. Effective debugging requires understanding the bigger picture, analyzing logs across services, identifying changes, and managing infrastructure at scale.&lt;/p&gt;</description></item><item><title>Debug With Logging Module</title><link>http://ghafoorsblog.com/courses/google/it-automation-content/it-automation-python-pcert/04-troubleshooting-debugging/04-module/005-with-logging/</link><pubDate>Thu, 13 Nov 2025 14:28:51 +0000</pubDate><author>noreply@example.com (AG Sayyed)</author><guid>http://ghafoorsblog.com/courses/google/it-automation-content/it-automation-python-pcert/04-troubleshooting-debugging/04-module/005-with-logging/</guid><description>&lt;p class="lead text-primary"&gt;
This document explores debugging Python programs using the logging module, covering log levels (DEBUG, INFO, WARNING, ERROR, CRITICAL), configuration options, file output, custom formatters, handlers, and best practices for production-grade logging that replaces print statements with structured, filterable log messages.
&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="introduction"&gt;Introduction&lt;/h2&gt;
&lt;p&gt;Imagine working on an e-commerce site where business growth brings increasing customers and unexpected errors. While &lt;code&gt;print()&lt;/code&gt; statements have been the go-to debugging strategy, they now flood the console with messages, making it hard to discern critical issues from routine operations. A more robust solution is needed to track, categorize, and diagnose issues effectively.&lt;/p&gt;</description></item><item><title>Unhandled Errors</title><link>http://ghafoorsblog.com/courses/google/it-automation-content/it-automation-python-pcert/04-troubleshooting-debugging/03-module/009-unhandled-errors/</link><pubDate>Thu, 13 Nov 2025 12:04:01 +0000</pubDate><author>noreply@example.com (AG Sayyed)</author><guid>http://ghafoorsblog.com/courses/google/it-automation-content/it-automation-python-pcert/04-troubleshooting-debugging/03-module/009-unhandled-errors/</guid><description>&lt;p class="lead text-primary"&gt;
This document explains how to handle unexpected errors and exceptions in high-level programming languages like Python, covering common error types, traceback analysis, debugging techniques including printf debugging and the logging module, and strategies for making programs resilient to failures.
&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="introduction"&gt;Introduction&lt;/h2&gt;
&lt;p&gt;While high-level languages like Python, Java, and Ruby handle memory management automatically, programs written in these languages can still encounter unexpected conditions that cause failures. When code doesn&amp;rsquo;t properly handle these conditions, it triggers errors or exceptions, causing programs to terminate unexpectedly.&lt;/p&gt;</description></item></channel></rss>