Closes #21172: Merged fix from 3.4.
This commit is contained in:
commit
bed54b569a
|
@ -23,7 +23,8 @@ Copyright (C) 2001-2014 Vinay Sajip. All Rights Reserved.
|
|||
To use, simply 'import logging' and log away!
|
||||
"""
|
||||
|
||||
import sys, os, time, io, traceback, warnings, weakref
|
||||
import sys, os, time, io, traceback, warnings, weakref, collections
|
||||
|
||||
from string import Template
|
||||
|
||||
__all__ = ['BASIC_FORMAT', 'BufferingFormatter', 'CRITICAL', 'DEBUG', 'ERROR',
|
||||
|
@ -253,7 +254,13 @@ class LogRecord(object):
|
|||
# 'Value is %d' instead of 'Value is 0'.
|
||||
# For the use case of passing a dictionary, this should not be a
|
||||
# problem.
|
||||
if args and len(args) == 1 and isinstance(args[0], dict) and args[0]:
|
||||
# Issue #21172: a request was made to relax the isinstance check
|
||||
# to hasattr(args[0], '__getitem__'). However, the docs on string
|
||||
# formatting still seem to suggest a mapping object is required.
|
||||
# Thus, while not removing the isinstance check, it does now look
|
||||
# for collections.Mapping rather than, as before, dict.
|
||||
if (args and len(args) == 1 and isinstance(args[0], collections.Mapping)
|
||||
and args[0]):
|
||||
args = args[0]
|
||||
self.args = args
|
||||
self.levelname = getLevelName(level)
|
||||
|
|
Loading…
Reference in New Issue