2017-02-08 9 views
2

私はHeroku上でホストしているPapertrailにDjangoアプリケーションを持ち、Papertrail Herokuアドオンを介してログインしています。Django HerokuアプリケーションでPapertrailに情報を記録するためにprint()を使用する利点

logger = logging.getLogger('papertrail') 
logger.info('important text') 

は私がthis linkに応じてログ構成を設定します:現在によって私は直接Papertrailに情報をログに記録しています多くの場所がありますが、一緒に、これがそうのようPapertrailにログインする

import sys 

LOGGING = { 
    'version': 1, 
    'disable_existing_loggers': False, 
    'handlers': { 
     'console': { 
      'level': 'INFO', 
      'class': 'logging.StreamHandler', 
      'stream': sys.stdout, 
     }, 
    }, 
    'loggers': { 
     'django': { 
      'handlers': ['console'], 
      'level': 'ERROR', 
     }, 
     'papertrail': { 
      'handlers': ['console'], 
      'level': 'INFO', 
     }, 
    }, 
} 

Feb 07 06:10:56 app_name app/worker.1: important text 

しかし、私はprint('important text')を使用して、ここで同じことを達成していることに気づきました。この状況で「重要なテキスト」を記録するためにloggingを引き続きprint以上使用すると、何か利点はありますか?私はthis articleを読んでいて、それのどれもここには適用されなかったようです。

答えて

2

私は自分自身でこの質問をしばしば尋ねていますが、私は通常、printがデバッグには役立つと判断しますが、ログは他のすべてに対してより強力です。

たとえば、ログには重大度を示すログレベルがあります。また、ロギングではログや出力、エラーなどをファイルに書き込むことができます。

これらの理由などにより、プロダクション環境のアプリケーションには、包括的なログシステムが必要です。

この一読を取り、それが明確になる必要があります。

https://docs.djangoproject.com/en/1.10/topics/logging/

あなたはこの答えとあなたが引用した記事に納得していない場合、私はより多くの研究を行ってお勧めします。それ以外の場合は、printを引き続き使用してください。

関連する問題