If you use the logging package but don't like using the ConfigParser-based configuration files which it currently supports, keep reading. I'm proposing to provide a new way to configure logging, using a Python dictionary to hold configuration information. It means that you can convert a text file such as
# logconf.yml: example logging configuration formatters: brief: format: '%(levelname)-8s: %(name)-15s: %(message)s' precise: format: '%(asctime)s %(name)-15s %(levelname)-8s %(message)s' handlers: console: class : logging.StreamHandler formatter : brief level : INFO stream : ext://sys.stdout file: class : logging.handlers.RotatingFileHandler formatter : precise filename : logconfig.log maxBytes : 1000000 backupCount : 3 email: class: logging.handlers.SMTPHandler mailhost: localhost fromaddr: my_...@domain.tld toaddrs: - support_t...@domain.tld - dev_t...@domain.tld subject: Houston, we have a problem. loggers: foo: level : ERROR handlers: [email] bar.baz: level: WARNING root: level : DEBUG handlers : [console, file] # -- EOF -- into a working configuration for logging. The above text is in YAML format, and can easily be read into a Python dict using PyYAML and the code import yaml; config = yaml.load(open('logconf.yml', 'r')) but if you're not using YAML, don't worry. You can use JSON, Python source code or any other method to construct a Python dict with the configuration information, then call the proposed new configuration API using code like import logging.config logging.config.dictConfig(config) to put the configuration into effect. For full details of the proposed change to logging, see PEP 391 at http://www.python.org/dev/peps/pep-0391/ I need your feedback to make this feature as useful and as easy to use as possible. I'm particularly interested in your comments about the dictionary layout and how incremental logging configuration should work, but all feedback will be gratefully received. Once implemented, the configuration format will become subject to backward compatibility constraints and therefore hard to change, so get your comments and ideas in now! Thanks in advance, Vinay Sajip -- http://mail.python.org/mailman/listinfo/python-list