First warning ("... WARNING [root] Developer ...") goes to STDERR, from handler, which defined by paste.script and described in debug.ini file, section [handler_console].
Second warning ("... WARNING root Developer ...") goes to STDOUT, from handler, defined in ZConfig and described in zope.conf, section `logfile` with path STDOUT.
If we need access.log using WSGI for debug, then we can't remove loggers and handlers from debug.ini.
Unfortunately, we can't remove `root` logger from debug.ini also, because first key should be `root` (as defined in standard python module logger.config). I.e. we perforce to keep `root` handler in debug.ini
And we need to keep that logger definition in zope.conf, obviously.
To avoid double logging, I increased logging level for first handler (in debug.ini) from NOTSET to ERROR.
First warning ("... WARNING [root] Developer ...") goes to STDERR, from handler, which defined by paste.script and described in debug.ini file, section [handler_console].
Second warning ("... WARNING root Developer ...") goes to STDOUT, from handler, defined in ZConfig and described in zope.conf, section `logfile` with path STDOUT.
If we need access.log using WSGI for debug, then we can't remove loggers and handlers from debug.ini.
Unfortunately, we can't remove `root` logger from debug.ini also, because first key should be `root` (as defined in standard python module logger.config). I.e. we perforce to keep `root` handler in debug.ini
And we need to keep that logger definition in zope.conf, obviously.
To avoid double logging, I increased logging level for first handler (in debug.ini) from NOTSET to ERROR.