[New-bugs-announce] [issue2473] logging.LogRecord should know how to handle dict-like args

Will Maier report at bugs.python.org
Mon Mar 24 14:56:06 CET 2008

New submission from Will Maier <willmaier at ml1.net>:

In (at least) Python 2.5.2, logging.logRecord provides a very useful
facility to interpolate formatted strings. This feature expands an *args
sequence; if that sequence has only one element and that element is a
dictionary, LogRecord uses the dictionary to interpolate keyword
formatted strings. This is incredibly useful, but the LogRecord
__init__() method includes a rather arbitrary type-specific check that
prevents users from passing dict-like objects to the log methods:

class LogRecord:
    def __init__(self, name, level, pathname, lineno,
                 msg, args, exc_info, func=None):
        if args and (len(args) == 1) and args[0] and (type(args[0]) ==
            args = args[0]

This restriction prevents the user from passing eg a subclass of
UserDict.DictMixin. Now, __init__() clearly does need to do _some_
checking of args, but it would be nice if that checking accepted
dict-like objects. I haven't come up with a good way to do this myself
yet, but I figured I'd submit the request now.


components: Library (Lib)
messages: 64415
nosy: wcmaier
severity: normal
status: open
title: logging.LogRecord should know how to handle dict-like args
type: feature request
versions: Python 2.5

Tracker <report at bugs.python.org>

More information about the New-bugs-announce mailing list