ncoghlan at gmail
Feb 26, 2012, 5:59 PM
Post #1 of 2
On Mon, Feb 27, 2012 at 10:44 AM, Larry Hastings <larry [at] hastings> wrote:
New-style formatting in the logging module (was Re: cpython (3.2): Issue #14123: Explicitly mention that old style % string formatting has caveats)
> On 02/26/2012 03:33 PM, Guido van Rossum wrote:
>> One thing I'd like to see happening regardless is support for
>> new-style formatting in the logging module. It's a little tricky to
>> think how that would work, alas -- should this be a property of the
>> logger or of the call?
> There already is some support. logging.Formatter objects can be initialized
> with a "style" parameter, making this a property of the logger. (New in
> Is that what you had in mind?
It's half the puzzle (since composing the event fields into the actual
log output is a logger action, you know the style when you supply the
format string). The other half is that logging's lazy formatting
currently only supporting printf-style format strings - to use brace
formatting you currently have to preformat the messages, so you incur
the formatting cost even if the message gets filtered out by the
logging configuration. For that, a logger setting doesn't work, since
one logger may be shared amongst multiple modules, some of which may
use printf formatting, others brace formatting.
It could possibly be a flag to getLogger() though - provide a facade
on the existing logger type that sets an additional event property to
specify the lazy formatting style.
Nick Coghlan | ncoghlan [at] gmail | Brisbane, Australia
Python-Dev mailing list
Python-Dev [at] python