How to disable south debug logging in django?

亡梦爱人 提交于 2019-12-22 02:02:30

问题


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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!