2017-01-26 5 views
2

セットアップロギングがうまくいきました。私が今したいことは、他のログに加えて、「マイアプリ」と呼ばれる特定のアプリケーションのすべてのデバッグ情報を記録し、これを実現する方法がわからないことです。それが今であるよう特定のアプリケーションのすべてのデバッグ情報をロギングしますか?

ワーキングを設定:

LOGGING = { 
    'version': 1, 
    'disable_existing_loggers': False, 
    # 
    'formatters': { 
     'default': { 
      'format': '\n%(levelname)s - %(asctime)s\n%(message)s\n' 
     }, 
    }, 
    # 
    'handlers': { 
     # 
     'mail_admins': { 
      'level': 'ERROR', 
      'class': 'django.utils.log.AdminEmailHandler', 
      'include_html': True, 
     }, 
     # 
     'debug_log': { 
      'level': 'DEBUG', 
      'class': 'logging.handlers.RotatingFileHandler', 
      'filename': '/var/log/django/debug.log', 
      'maxBytes': 1024*1024*5, 
      'backupCount': 5, 
      'formatter': 'default', 
     }, 
     # 
     'error_log': { 
      'level': 'ERROR', 
      'class': 'logging.handlers.RotatingFileHandler', 
      'filename': '/var/log/django/error.log', 
      'maxBytes': 1024*1024*5, 
      'backupCount': 5, 
      'formatter': 'default', 
     }, 
    }, 
    # 
    'loggers': { 
     '': { 
      'handlers': ['mail_admins', 'error_log',], 
      'level': 'INFO', 
      'propagate': True, 
     }, 
     'django': { 
      'handlers': ['debug_log',], 
      'level': 'DEBUG', 
      'propagate': True, 
     }, 
    } 
} 

を私は1つの特定のアプリのためにすべてをキャプチャするデバッグログを設定したいと思います。私は、次の内容を追加しハンドラをLOGGINGへ:

 'app_log': { 
      'level': 'DEBUG', 
      'class': 'logging.handlers.RotatingFileHandler', 
      'filename': '/var/log/django/app.log', 
      'maxBytes': 1024*1024*5, 
      'backupCount': 5, 
      'formatter': 'default', 
     }, 

そして次ロガー

'my_app': { 
     'handlers': ['app_log',], 
     'level': 'DEBUG', 
     'propagate': True, 
    }, 

my_app.viewsに以下を追加します。ここで、I

import logging 

logger = logging.getLogger(__name__) 

そして、ここです私が次に何をする必要があるかわからない。特定のビューに次のようなものを追加できます。

... 
    if blahblahblah: 
     logger.debug('My Message Here') 
    ... 

しかし、私が本当に欲しいのは、「My Message Here」だけでなく、アプリ全体のデバッグ情報です。私はすべてのクエリ情報などが必要です... ie:標準のデバッグログと同じ情報が、その1つのアプリだけです。

どうすればよいですか?

+0

はいでした。助けてくれてありがとう。 – Fish

+0

助けてくれてうれしいです。あなたのプロジェクトで最高のもの – e4c5

答えて

1

SQL query loggingを明示的に有効にしていませんが、アプリスコープで有効にできるかどうかは不明です。 AFAIKは、プロジェクト全体に対してのみ有効または無効にすることができます。あなたはアプリレベルでこれを実行したい場合は

、またはビューレベルあなたはこれを試すことができます。

from django.db import connection 
logger.debug(connection.queries) 

置き、このコードを使用すると、SQLのログを見たい各ビューの終わりに。

関連する問題