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 <rep...@bugs.python.org>
<http://bugs.python.org/issue16110>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to