2016-06-09 77 views
3

我正在尋找一種只有在Django測試運行時具有高冗長級別才能寫入控制檯的方法。 例如 - 當我運行登錄Django測試的詳細程度

python manage.py test -v 3 

它將記錄我的信息打印到控制檯,但是,當我運行

python manage.py test -v 0 

這將無法登錄我的消息。

我試圖在代碼中使用logger.info(),但消息根本不顯示。

有什麼建議嗎?

回答

0

-v控制測試運行器本身的詳細程度(例如:數據庫創建等),而不是應用程序日誌記錄的詳細程度。

你真正想要的是改變django應用程序本身的日誌記錄級別,如logging documentation中所述。

你可能想簡單地覆蓋日誌記錄設置只是爲了測試,或者您可以使用--debug-mode設置settings.DEBUGTrue,並在您的settings.py特定的DEBUG配置(這是相當常見的,因爲它可以幫助時發展)。

這是如何實現後者的基本示例:

'loggers': { 
    '': { 
     'handlers': ['console', 'sentry'], 
     'level': 'INFO', 
    }, 
    'myapp': { 
     'level': 'DEBUG' if DEBUG else 'INFO', 
     'propagate': True, 
    }, 
}