问题
When I run my tests in Django, after a fail I got several pages of debug output from South, like these:
south: DEBUG: south execute "CREATE INDEX "sometable_4d5bad5" ON "video_playable" ("network_id");" with params "[]"
south: DEBUG: south execute "CREATE INDEX "sometable_790e6d98" ON "video_playable" ("published");" with params "[]"
south: DEBUG: south execute "CREATE INDEX "sometable_72312277" ON "video_playable" ("archived");" with params "[]"
And with all this logging output, the relevant error messages are lost in a sea of garbage. Is there a way to disable this ouput?
回答1:
Put this somewhere in your code. I have it in myapp/migrations/__init__.py
import logging
south_logger=logging.getLogger('south')
south_logger.setLevel(logging.INFO)
回答2:
You can set SOUTH_TESTS_MIGRATE to False
in your setting.py
. This will disable all migrations during the tests. I know it's not exactly what you want, but hope will be usefull
If this is False, South’s test runner integration will make the test database be created using syncdb, rather than via migrations (the default). Set this to False if you have migrations which take too long to migrate every time tests run, but be wary if you rely on migrations to do special things.
回答3:
import logging
import south.logger
logging.getLogger('south').setLevel(logging.CRITICAL)
I am able to set this in my setting/testing.py
Also if this is only bothering you with your django-nose tests add
nosetests --nologcapture
来源:https://stackoverflow.com/questions/8578223/how-to-disable-south-debug-logging-in-django