Preferred method for controlled logging of Python debug messages?
I'm writing a large hardware simulation library in Python3. For logging, I
use the Python3 Logging module.
For controlling debug messages with method-level granularity, I learned
"on the street" (ok, here at StackOverflow) to create sub-loggers within
each method I wanted to log from:
sub_logger = logging.getChild("new_sublogger_name")
sub_logger.setLevel(logging.DEBUG)
# Sample debug message
sub_logger.debug("This is a debug message...")
By changing the call to setLevel(), the user is able to enable/disable
debugging messages on a per-method basis.
Now the Boss Man don't like this approach. He's advocating a single-point
at which all logging messages in the library can be enabled/disabled with
the same method-level granularity. (This was to be accomplished by writing
our own Python logging library BTW).
Not wanting to re-invent the logging wheel, I proposed to instead continue
to use the Python Logging library, but instead use Filters to allow
single-point control of logging messages.
Having not used Python Logging Filters very often, is there a consensus on
using Filters vs Sublogger.setLevel() for this application?
I'm quite used to setLevel() after using it for a while, but that may be
coloring my objectiveness. I DO NOT, however, wish to waste everyone's
time writing another Python logging library.
No comments:
Post a Comment