2013-07-19 33 views
5

設定ファイルでコンソールログレベルを上書きできるようにしたい。私はdjango logging documentを読んでいますが、私が欲しいものをロギングするのに問題があります。簡潔な方法djangoのコンソールログレベルを変更する

"Django 1.5以降では、プロジェクトのロギング設定がDjangoのデフォルト設定とマージされるため、既存の設定に追加するか、既存の設定を置き換えるかを決めることができます。 LOGGING dictConfigでdisable_existing_loggersキーをTrueに設定するか、ロガーの一部またはすべてを再定義することもできます。

だから私はちょうど私のsettings.pyに次を追加してみました:

LOGGING = { 
    'version': 1, 
    'disable_existing_loggers': False, 
    'handlers': { 
     'console':{ 
      'level': 'DEBUG', 
     }, 
    }, 
} 

...しかし、私は例外を取得:十分

<snip> 
    File "/usr/lib/python2.7/logging/config.py", line 575, in configure 
    '%r: %s' % (name, e)) 
ValueError: Unable to configure handler 'console': 'NoneType' object has no attribute 'split' 

フェア。設定ブロック全体が必要なようです。だから、私は、最も単純なコンソールロガーの設定だろうと思ったものを試してみました:

LOGGING = { 
    'version': 1, 
    'disable_existing_loggers': True, 
    'formatters': { 
     'simple': { 
      'format': '%(levelname)s %(message)s' 
     }, 
    }, 
    'handlers': { 
     'console':{ 
      'level': 'INFO', 
      'class': 'logging.StreamHandler', 
      'formatter': 'simple' 
     }, 
    }, 
    'loggers': { 
     'default': { 
      'handlers': ['console'], 
      'level': 'INFO', 
      'filters': [] 
     } 
    } 
} 

私の意図は、INFOにログレベルを設定することですが、私はまだDEBUGメッセージの束を見て、文字列MYFORMATTERにはありませんとにかくそれらのいずれかに登場する。私はここでかなり何かを明らかに不足しているしなければならない

from django.utils.log import DEFAULT_LOGGING 
DEFAULT_LOGGING['handlers']['console']['level'] = 'INFO' 

は最後に、盲目の楽観と、私はこれを実行しようとしました。

私はDjango 1.5.1を使用しています。

+0

あなたは[sentry](https://github.com/getsentry/sentry)に興味があるかもしれません。 –

答えて

3

、私はsettings.pyファイルに次のように起こってしまった:

import logging 

logging.basicConfig(
    level = logging.INFO, 
    format = " %(levelname)s %(name)s: %(message)s", 
) 
0

あなたはDjangoのログレベルを設定するには、この操作を行うことができます。

import logging 
logging.disable(logging.INFO) 

logging.disable(LVL)

は ロガー自身よりも優先され、すべてのロガーの上書きレベルlvlを与えレベル。 の必要性が発生すると、アプリケーション全体でログ出力が一時的に抑制され、 この機能が役立ちます。その効果は重大度lvl以下のすべてのログ の呼び出しを無効にすることです。値 のINFOで呼び出すと、すべてのINFOおよびDEBUGイベントは破棄されますが、 重大度WARNING以上のイベントは処理されますロガーの有効レベルは です。 logging.disable(lvl)への呼び出しの影響を元に戻すには、logging.disable(logging.NOTSET)を呼び出します。ここで自分の質問に答える

http://docs.python.org/2/library/logging.html#logging.disable

+0

Hmm。しかし、これは、基礎となるロガーが例えばINFOで印刷するように設定されていて、コンソール上でDEBUGメッセージを見たい場合にはうまくいきません。 – user2076663

+0

ok、あなたはあなたの質問の反対です;) – maazza

0

私は「クラスが欠落していた同様のissue-を持っていました"私のハンドラーの一人から。

関連する問題