2

I have the following config (based on this):

'loggers': {
    'django': {
        'handlers': ['console'],
        'level': 'INFO',
    },
    'root': {
        'handlers': ['console'],
        'level': 'INFO',
    },
},

When I run my tests like this (Django 1.8.4)

./manage.py test

I get DEBUG-level output from a source line in my own code that looks like

import logging
logging.debug("Shouldn't be seen, but is")

The line indicates the log message is going to the root logger, as I would expect:

DEBUG:root:blah: Shouldn't be seen, but is

As the tests are running it says

nosetests --verbosity=1

If I say

./manage.py test --verbosity=0

that nosetests message goes away, but the debug logging does not.

What is happening? Is my logging config wrong? Is nosetests interfering? Django?

I think my logging config is being read. I suppressed a django.request WARNING by configuring that logger in this config file.

How do I debug this?

(I read this related post, it didn't help.)

Community
  • 1
  • 1
dfrankow
  • 20,191
  • 41
  • 152
  • 214

1 Answers1

4

Your logger configuration is not written correctly. The 'root' configuration goes outside the 'loggers' part, like this:

'loggers': {
    'django': {
        'handlers': ['console'],
        'level': 'INFO',
    },
},
'root': {
    'handlers': ['console'],
    'level': 'INFO',
}

Setting it up as this should work.