thbach added the comment:
vinay: I understand your preference of dictConfig over fileConfig as
maintainer. But as an application developer I want to provide my user an easy
way to adjust logging herself. In the end of the day she is the one knowing
what has to be logged in which place. Therefor, having something like
fileConfig is essential.
david: The modified configuration can be passed to fileConfig via a StringIO
instance.
The downside is that ConfigParser instances with e.g. 'allow_no_value' set to
True are currently difficult to handle – e.g.:
>>> sys.version
'3.2.3 (default, Jun 25 2012, 23:10:56) \n[GCC 4.7.1]'
>>> cp = configparser.ConfigParser(allow_no_value=True)
>>> cp.read_string('[foo]\nbar')
>>> buf = io.StringIO()
>>> cp.write(buf)
>>> buf.seek(0)
0
>>> logging.config.fileConfig(buf)
---------------------------------------------------------------------------
ParsingError Traceback (most recent call last)
<ipython-input-67-0717fe665796> in <module>()
----> 1 logging.config.fileConfig(buf)
/usr/lib/python3.2/logging/config.py in fileConfig(fname, defaults,
disable_existing_loggers)
64 cp = configparser.ConfigParser(defaults)
65 if hasattr(fname, 'readline'):
---> 66 cp.read_file(fname)
67 else:
68 cp.read(fname)
/usr/lib/python3.2/configparser.py in read_file(self, f, source)
706 except AttributeError:
707 source = '<???>'
--> 708 self._read(f, source)
709
710 def read_string(self, string, source='<string>'):
/usr/lib/python3.2/configparser.py in _read(self, fp, fpname)
1079 # if any parsing errors occurred, raise an exception
1080 if e:
-> 1081 raise e
1082 self._join_multiline_values()
1083
ParsingError: Source contains parsing errors: <???>
[line 2]: 'bar\n'
Hence, logging.config.fileConfig should at least provide a way to pass in
arguments for the ConfigParser initialization. Anyways, I think it is much
cleaner to provide a function which gets the configuration directly from the
ConfigParser instance.
----------
_______________________________________
Python tracker <[email protected]>
<http://bugs.python.org/issue16110>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com