2012-02-21 1 views
2
LOGGING = { 
'version': 1, 
'disable_existing_loggers': True, 
'formatters': { 
    'verbose': { 
     'format': '%(levelname)s %(asctime)s %(module)s %(process)d %(thread)d %(message)s' 
    }, 
    'simple': { 
     'format': '%(levelname)s %(message)s' 
    } 
}, 
'handlers': { 
    'console': { 
     'level':'DEBUG', 
     'class':'logging.StreamHandler', 
     'strm': sys.stdout, 
     'formatter':'simple' 
    }, 
}, 
'loggers': { 
    'django': { 
     'handlers':['console'], 
     'propagate': True, 
     'level':'INFO', 
    }, 
    #'django.request': { 
    # 'handlers': ['console'], 
    # 'level': 'ERROR', 
    # 'propagate': True, 
    #}, 
}, 
} 

両方のロガーを試してみました。アクティブなものと1人はコメントアウトしました(他にも多くの人がコメントしました)。 はこのログ設定がstdoutに印刷されないのはなぜですか?

python manage.py runserver 0.0.0.0:8080 

そして、まだは500エラーにはシュトラックトレースはちょうど、私のコンソールを印刷していない実行している:私は間違って何をやっている

[21/Feb/2012 04:21:10] "POST /some/path/function/ HTTP/1.1" 500 105627 

答えて

3

あなたはfiltersを指定する必要があります。

'loggers': { 
    'django': { 
     'handlers':['console'], 
     'filters': [],    # <-- this line 
     'propagate': True, 
     'level':'INFO', 
    }, 
}, 

私は理由を知りません。

+0

私はちょうど自分自身につまずいた。何らかの理由で、AFAIKのフィルタフィールドは、少なくともmail_adminsハンドラを使用しているときに、指定されていなければ、djangoによって[require_debug_false ']に自動的に何らかの形で設定される唯一のものです。私は、試行錯誤と頭を悩ませてこれを発見しました。私はこれが意図された動作かバグか(Django 1.4.x)のどちらかがわかりません –

+0

ああ、興味深い発見@TomášPlešek –

2

ロガーレベル、ハンドラレベルに高い優先順位を持つ、 logging.DEBUGは、値10を有し、かつlogging.INFOは、したがって、あなたのログは常にロガー優先順位のINFOレベルだってに設定された値20

'handlers': { 
    'console': { 
     'level':'DEBUG', 
    }, 
} 

'loggers': { 
     'level':'INFO', 
    } 

を持っています、 DEBUG出力は使用されません。

これは私が問題だと感じているものです。

+1

確かに、ロガーレベルをDEBUGに設定すると、DEBUG出力が得られます。私はデバッグ出力を望んでいません。私はINFO以上が欲しいですが、本当に私がしたいのは誤りです。 ERRORレベルのログはまったくありません。 – mkocubinski

+0

logging.ERRORには値40があり、ロギングモジュールでチェックします。試して、インポートログをインポート logging.ERROR – avasal

関連する問題