Issue 7181: No logging when two loggers with same qualname (original) (raw)
Hello, everyone. I think I have found a bug in the python logging module when configured via fileConfig
Scenario 1: When using the configuration file attached to this ticket and test case below, there should be logging in three places:
- console (info and error)
- 'butterfly.log' (info and error)
- 'butterfly-error (error)
In third no output is ever written.
Scenario 2: Another odd thing is that when using keys=root,errorLogger,normalLogger - root and normalLogger works correct, errorLogger not, but if I use keys=root,normalLogger,errorLogger - root and errorLogger works fine, normalLogger not. So there is a link between order of logger definition?
Scenarion 3: If I change to one of the loggers qualname=butterfly.test then both loggers works fine.
Platform: Windows XP + SP2 Python: 2.5.4
Test case: import logging from logging import config
config.fileConfig('logging.cristiroma.config') log = logging.getLogger('butterfly.test') log.info('info') log.error('error')
Output:
Console: 2009-10-21 15:38:48 INFO butterfly.test info 2009-10-21 15:38:48 ERROR butterfly.test error
butterfly.log: 2009-10-21 15:40:32 INFO butterfly.test test.py::7 info 2009-10-21 15:40:32 ERROR butterfly.test test.py::8 error
butterfly-error.log: Nothing
P.S. This is my first bug submission, tried to google about it. Please don't shoot.
Regards, Cristian.
You have made a mistake in your configuration. You only have one logger, named "butterfly", but this wrongly appears twice in your configuration.
Remove the errorLogger key and section entirely, then add errorHandler to the handlers of normalLogger. Because the errorFileHandler has a level of ERROR, only ERRORS and greater will be written to the error file.
Tested with changed file on Python 2.5.2 under Windows, performs as expected. Closing this issue.