2017-11-08 19 views
0

私はdjangoアプリケーション内に単純なログファイルを作成することに頭を悩ましています。私はthis questionと、ドキュメントの例を適用しようとしましたが、それは単に動作していないように見えますし、何がうまくいかないのか分かりません。ストレートdocからDjangoのコンソールへの単純なログ1.7.11

私の現在のログファイル、第二の例:

LOGGING = { 
    'version': 1, 
    'disable_existing_loggers': False, 
    'handlers': { 
     'console': { 
      'class': 'logging.StreamHandler', 
     }, 
    }, 
    'loggers': { 
     'django': { 
      'handlers': ['console'], 
      'level': os.getenv('DJANGO_LOG_LEVEL', 'INFO'), 
     }, 
    }, 
} 

ドキュメントは、次のように述べている:

「この設定はコンソールのみにレベルINFO以上のメッセージを送信」

これを私のhome.view.pyファイルに置くと私の理解では...

import logging 
log = logging.getLogger(__name__) 
log.debug("Hey there it works!!") 
log.info("Hey there it works!!") 
log.warn("Hey there it works!!") 
log.error("Hey there it works!!") 

...私はinfowarnと私は正しいURLを訪れたとき、私は起こると思っコールがhome.views.pyに行われるたびに、私のコンソールに出力さerrorメッセージを、取得する必要があります。

これは誤っているようです。ただし、manage.py collectstaticを実行した場合に限り、warnerrorが表示されます。

WARNING:home.views:Hey there it works!! 
ERROR:home.views:Hey there it works!! 

私はhome.views.pyからレンダリングのWebページをご覧たび、コンソールにログメッセージを受信したいです。これはどうすればいいですか?

答えて

0

この方法:

os.getenv('DJANGO_LOG_LEVEL', 'INFO') 

最初に設定されている場合、環境変数を取得しようとします。設定されていない場合、デフォルトは2番目の引数になります。可能なDJANGO_LOG_LEVELはINFOよりも高い値に設定されています。

この仮説をテストするには、ご使用の環境で次の手順を実行します。

echo $DJANGO_LOG_LEVEL 

は、そのいずれか1が設定されていないことを確認し、または `echo`は何も返さない実行INFO

export DJANGO_LOG_LEVEL=INFO 
+0

に2セット。 'env = os.getenv( 'DJANGO_LOG_LEVEL'、 'INFO')'を実行すると、 'INFO'が返されます。それは設定されていないようです。 –

関連する問題