2017-04-26 5 views
0

djangoがどのようにログを処理しているのか混乱しています。 1が見ることができるように、私はジャンゴとアプリのログ、ファイルおよび mail_admins用に定義された2つのハンドラを持っているdjangoのログを理解する

ログ設定

LOGGING = { 
    ... 
    'handlers': { 
     'console': { 
      'class': 'logging.StreamHandler', 
      'formatter': 'verbose', 
     }, 
     'file': { 
      'level': 'DEBUG', 
      'class': 'logging.handlers.RotatingFileHandler', 
      'filename': LOG_BASE_DIRECTORY + '/django.log', 
      'maxBytes': LOGFILE_SIZE, 
      'backupCount': LOGFILE_COUNT, 
      'formatter': 'verbose' 
     }, 
     'mail_admins': { 
      'level': 'ERROR', 
      #'filters': ['require_debug_false'], 
      'class': 'django.utils.log.AdminEmailHandler' 
     } 
    }, 
    'loggers': { 
     'django': { 
      'handlers': ['file','mail_admins'], 
      'level': 'INFO', 
      'propagate': True, 
     }, 
     'app1': { 
      'handlers': ['file','mail_admins'], 
      'level': 'DEBUG', 
      'propagate': True, 
     }, 

     ... 
    }, 
} 

:私は私の設定でロガーのこの設定を持っています。 fileのログレベルはdebugです。したがって、デバッグ以上のすべてのログはこのハンドラを使用するものと仮定します。 mail_adminsのレベルはerrorです。私が見ている問題は、電子メールハンドラが実行してメールを送信する間に500のエラーが発生した場合、ファイルにログが記録されていないことです。

答えて

-2

ロギングエラーの場合は、コードにログする必要があります。この

import logging 

try: 
    # your code here 
except Exception as e: 
    logging.getLogger("logger_name").error(repr(e)) 

のようなものは、同じまたはビデオのためのthis articleと作業githubのコードをthis official doc linkを参照してください。

関連する問題