mocking a logging object
Peter Bengtsson
peterbe at gmail.com
Mon Jun 2 07:27:41 EDT 2008
In my unittest I want to override the logger of a working module so
that it puts all logging messages in /tmp/test.log instead so that in
my unittest I can inspect that it logs things correctly. Hopefully
this "pseudo" code will explain my problem::
>>> import logging, os
>>> logging.basicConfig(filename='/tmp/real.log', level=logging.INFO)
>>> logger = logging.getLogger('Real')
>>> logger.info('Real stuff')
>>> os.path.isfile('/tmp/real.log')
True
>>> # do the monkey patching like the unit test does
>>> logging.basicConfig(filename='/tmp/test.log', level=logging.INFO)
>>> logger = logging.getLogger('Test')
>>> logger.info('Test stuff')
>>> os.path.isfile('/tmp/test.log')
False
>>> open('/tmp/real.log').read()
'INFO:Real:Real stuff\nINFO:Test:Test stuff\n'
How can I change what file the logger should write to?
More information about the Python-list
mailing list