Commit 7a7160bd authored by Vinay Sajip's avatar Vinay Sajip

Added the ability to specify a class attribute in Formatter configuration....

Added the ability to specify a class attribute in Formatter configuration. Contributed by Shane Hathaway.
parent 81cdb4eb
......@@ -86,6 +86,21 @@ def fileConfig(fname, defaults=None):
logging._releaseLock()
def _resolve(name):
"""Resolve a dotted name to a global object."""
name = string.split(name, '.')
used = name.pop(0)
found = __import__(used)
for n in name:
used = used + '.' + n
try:
found = getattr(found, n)
except AttributeError:
__import__(used)
found = getattr(found, n)
return found
def _create_formatters(cp):
"""Create and return formatters"""
flist = cp.get("formatters", "keys")
......@@ -104,7 +119,12 @@ def _create_formatters(cp):
dfs = cp.get(sectname, "datefmt", 1)
else:
dfs = None
f = logging.Formatter(fs, dfs)
c = logging.Formatter
if "class" in opts:
class_name = cp.get(sectname, "class")
if class_name:
c = _resolve(class_name)
f = c(fs, dfs)
formatters[form] = f
return formatters
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment