2017-08-31 72 views
0

我使用Django 1.11在AWS彈性青苗,我一直tryinf讓我的應用程序登錄,沒有運氣...Django的日誌請求

我在settings.py有這些

LOGGING_CONFIG = None 
LOGGING = { 
    'version': 1, 
    'disable_existing_loggers': False, 
    'handlers': { 
     'file': { 
      'level': 'DEBUG', 
      'class': 'logging.FileHandler', 
      'filename': '/opt/python/current/app/staging.log', 
     }, 
    }, 
    'loggers': { 
     '': { 
      'handlers': ['file'], 
      'level': 'DEBUG', 
      'propagate': True, 
     }, 
     'django': { 
      'handlers': ['file'], 
      'level': 'DEBUG', 
      'propagate': True, 
     }, 
     'django.request': { 
      'handlers': ['file'], 
      'level': 'DEBUG', 
      'propagate': True, 
     }, 
    }, 
} 
import logging.config 
logging.config.dictConfig(LOGGING) 

然後我試着打電話給我的一個API,並期望會在日誌中顯示出來,但事實並非如此。我django.request記錄器應該自動記錄所有傳入的請求,或者我必須創建一箇中間件,確實logger.debug('something')

記錄在Django是一個複雜得多比我因子評分在Django的日誌記錄:(

回答

0

演示,日誌位置/path/to/your/project/log/info.log, 您需要在日誌中創建info.log建立/ DIR第一。

settings.py

LOG_PATH = os.path.join(BASE_DIR, "log/") 
LOGGING = { 
    'version': 1, 
    'disable_existing_loggers': True, 
    'formatters': { 
     'standard': { 
      'format': '%(asctime)s [%(levelname)s]- %(message)s'} 

    }, 
    'handlers': { 
     'django_error': { 
      'level': 'DEBUG', 
      'class': 'logging.handlers.RotatingFileHandler', 
      'filename': LOG_PATH + 'django.log', 
      'formatter': 'standard' 
     }, 
     'info': { 
      'level': 'DEBUG', 
      'class': 'logging.handlers.RotatingFileHandler', 
      'filename': LOG_PATH + 'info.log', 
      'formatter': 'standard' 
     }, 
     'console': { 
      'level': 'DEBUG', 
      'class': 'logging.StreamHandler', 
      'formatter': 'standard' 
     } 
    }, 
    'loggers': { 
     'info': { 
      'handlers': ['info', "console"], 
      'level': 'DEBUG', 
      'propagate': True 
     }, 
     'django': { 
      'handlers': ['console'], 
      'level': 'INFO', 
      'propagate': True, 
     }, 
     'django.request': { 
      'handlers': ['django_error', 'console'], 
      'level': 'DEBUG', 
      'propagate': True, 
     }, 
     'django.db.backends': { 
      'handlers': ['console'], 
      'level': 'ERROR', 
      'propagate': True, 
     } 
    }, 
} 

記錄器的效果是:

  • 信息:您的自定義調試信息
  • Django的:請求記錄
  • django.request:錯誤的請求
  • django.db.backends:與代碼的相互作用與數據庫
消息

更多信息here

views.py

import logging 
logger = logging.getLogger("info") 
logger.info('something') 

你會得到

2017-08-31 13:05:40,492 [INFO]- something 
在日誌/ info.log建立

以後。