On Tue, Mar 6, 2012 at 15:58, Hyrum K Wright <hyrum.wright_at_wandisco.com> wrote:
> On Tue, Mar 6, 2012 at 2:42 PM, Greg Stein <gstein_at_gmail.com> wrote:
>> You may as well use the default logger. That way, every module can
>> just: import logging ; logging.info('whatever: %s %s', foo, bar)
> I thought about that, but figured using the custom logger would give
> us more flexibility. Separate test suites could use separate loggers
> when run in parallel, for instance, and they wouldn't interleave each.
> By establishing the habit of using a named logger, rather than the
> default one, it means we can just change the logger reference, instead
> of go back and rewrite everything to use a custom logger later.
> This first pass is to just get as much as possible using the logging
> framework, and then we can go back and worry about such things. I
> just don't want us to prematurely optimize. :)
Euh... that's not premature optimization. That is keeping things
*simple* unless and until circumstances dictate that we need more
complexity. You haven't demonstrated that at all yet.
And as long as you keep doing a per-module logger, then each and every
one of those loggers will need to be configured. Add a stream handler.
Add a formatter. Adjust their loglevel based on the verbose flag.
By sticking to the root logger, the main.py can get it configured
properly and all modules can use it without concern. As it stands,
per-module loggers absolutely increases complexity with zero benefit.
>> You may want to change most of the calls to logging.FOO rather than
>> logger.FOO for consistency with other modules that will use the
>> logging framework.
>> I would also recommend creating a Formatter and attaching it to that
>> formatter = logging.Formatter('%(asctime)s [%(levelname)s] %(message)s',
>> '%Y-%m-%d %H:%M:%S')
>> that will give us a timestamp for each line.
> Future Work. A valuable suggestion, but right now I'm focused on
> getting the logging infrastructure in place, so we can make this kind
> of changes on a system-wide basis.
It can only be done (easily) on a system-wide basis if you use the
root logger :-)
Received on 2012-03-06 22:02:36 CET