2014-01-09 33 views
9

在我的Django設置中,我有以下日誌配置。在python中配置root logger

LOGGING = { 
    'version': 1, 
    'disable_existing_loggers': False, 
    'formatters': { 
     'verbose': { 
      'format': 
       '%(levelname)s|%(asctime)s|%(name)s>> %(message)s', 
     }, 
    }, 
    'handlers': { 
     'console': { 
      'level': 'DEBUG', 
      'class': 'logging.StreamHandler', 
      'formatter': 'verbose', 
     } 
    }, 
    'loggers': { 
     '': { 
      'handlers': ['console'], 
      'level': 'ERROR', 
      'propagate': True, 
     }, 
     'apps': { 
      'handlers': ['console'], 
      'level': 'DEBUG', 
     }, 
    } 
} 

有了這個配置,我希望我的'應用程序'在DEBUG級別和任何其他模塊登錄只有錯誤和以上。但是我看到來自其他模塊的DEBUG消息。我如何解決它?

回答

5

您是否使用LOGGING['loggers']中的空字符串鍵匹配根記錄器?如果是這樣,你可以試試這個。

LOGGING = { 
    'version': 1, 
    'disable_existing_loggers': False, 
    'formatters': { 
     'verbose': { 
      'format': 
       '%(levelname)s|%(asctime)s|%(name)s>> %(message)s', 
     }, 
    }, 
    'handlers': { 
     'console': { 
      'level': 'DEBUG', 
      'class': 'logging.StreamHandler', 
      'formatter': 'verbose', 
     } 
    }, 
    'loggers': { 
     'apps': { 
      'handlers': ['console'], 
      'level': 'DEBUG', 
     } 
    }, 
    'root': { 
     'handlers': ['console'], 
     'level': 'ERROR' 
    } 
} 
+0

我試過這個,但沒有奏效。仍然看到來自其他模塊的DEBUG消息。 – Chamindu

+1

@Chamindu您是否嘗試將''''改爲''root''而不是將其移出'loggers'? (我對晚會有點遲到,對不起!) –

+0

我沒有嘗試過。這是很長一段時間後,我什至不記得我試圖做到這一點:) – Chamindu