|
@@ -298,6 +298,8 @@ import sys
|
|
|
|
|
|
from logging import LogRecord
|
|
|
|
|
|
+log_takes_extra = "extra" in inspect.getargspec(logging.Logger._log)[0]
|
|
|
+
|
|
|
# The func argument to LogRecord was added in 2.5
|
|
|
if "func" not in inspect.getargspec(LogRecord.__init__)[0]:
|
|
|
def LogRecord(name, level, fn, lno, msg, args, exc_info, func):
|
|
@@ -405,6 +407,12 @@ try:
|
|
|
except ImportError:
|
|
|
LoggerAdapter = _CompatLoggerAdapter
|
|
|
|
|
|
+
|
|
|
+def log_with_extra(logger, level, msg, *args, **kwargs):
|
|
|
+ if not log_takes_extra:
|
|
|
+ kwargs.pop("extra", None)
|
|
|
+ return logger.log(level, msg, *args, **kwargs)
|
|
|
+
|
|
|
############## itertools.izip_longest #######################################
|
|
|
|
|
|
try:
|
|
@@ -427,6 +435,7 @@ except ImportError:
|
|
|
except IndexError:
|
|
|
pass
|
|
|
|
|
|
+
|
|
|
############## itertools.chain.from_iterable ################################
|
|
|
from itertools import chain
|
|
|
|