The current configuration system uses 3 separate objects to configure log4php - one for each configuration format XML, properties and PHP. This often caused inconsistencies in the way log4php is configured - the equivalent configuration would not produce the same results.
The idea is to create a singe Configurator object which will only take configuration as a PHP array. Then create several Adapter objects (one for each configuration format) which will translate the configuration from that format to a PHP array understood by the Configurator. This would make the Configurator the single class which configures log4php.
The second goal of this action is to improve error reporting. Any configuration which cannot be parsed, or any invalid value in configuration should produce a PHP warning informing the user what's wrong.
Thirdly, we should insure that the configurator does not throw any exceptions. Any errors should only result in a warning message so it doesn't break apps just because it cannot log.
Lastly, we can standardize and document the PHP configuration format which exists already, but is not documented.