The Logging Tradition¶
For experienced engineers, it can help to understand Lithoxyl by taking a hard look at the past and current state of logging.
Logging in General¶
Without getting into Python specifics, most ecosystems have pretty low standards for logging. Logging is an afterthought, added when the application misbehaves and needs to be debugged. Just having any logging can easily put an application in the top quartile for quality.
And worse yet, the opposite can be true. Logging’s place in software is so low that having logging is often a yellow flag for lower-quality code in need of constant debugging. If the code needed so much logging, it must have had a lot of problems.
This is the past and present reality of logging in general.
Logging in Python¶
This will be frank, so first things first: all due respect to Vinay Sajip and all the Python contributors who worked on Python logging. Without their work, there is no telling where we would be today. Now, the critique.
The built-in logging
module itself followed this afterthought
pattern. Little more than a knockoff of Log4j, logging
pays
virtually no mind to performance, practicality, or the fact that
Python is not Java.
Application instrumentation is important. Good metrics are worth more than their weight in CPU cycles. By running a high-level language like Python, a design decision has already been made to achieve a richer, more featureful environment.
With that in mind, it is critical that Python libraries take the semantic high road. Always emphasize maintainability, introspectability, and reliability in Python code.
Because application instrumentation is vital to all these areas, the
approach and framework used must be closely matched. The built-in
logging
library is a frumpy, secondhand suit, thrifted and
worn without even a thorough cleaning. Lithoxyl is new, tailored to
fit Python and its many, many modern applications.
The Lithoxyl Response¶
Python’s power lets us do better. And we can’t stop with just logging. We need to look at instrumentation as a whole.
Tradition is to add logging to indicate breakage. Little more than print statements and tracebacks piped to files.
Modern instrumentation is more than a debugging utility.
Lithoxyl provides structured data and online statistics to unlock your application’s potential. Lithoxyl is a development tool, worth using from day one. Good instrumentation focuses on the whole application lifecycle. It helps with debugging problems, but it also offers direction when the sun is shining and the monitoring is green. Lithoxyl is the Pythonic step toward that bright, introspectable future.