Python Django日志记录请求
我在awsPython Django日志记录请求,python,django,logging,Python,Django,Logging,我在awselastic beanstalk中使用django 1.11,我一直在尝试让我的应用程序登录,但运气不好 我的设置中有这些。py LOGGING_CONFIG = None LOGGING = { 'version': 1, 'disable_existing_loggers': False, 'handlers': { 'file': { 'level': 'DEBUG', 'class': '
elastic beanstalk中使用django 1.11,我一直在尝试让我的应用程序登录,但运气不好
我的设置中有这些。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)
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,
}
},
}
然后我尝试调用我的一个API,希望日志中会出现一些东西,但它没有。Idjango.request
logger应该自动记录所有传入的请求,还是必须创建一个中间件来执行logger.debug('something')
登录django比我想象的要复杂得多:(登录django的演示,日志位于/path/to/your/project/log/info.log
,,
您需要先在log/dir中创建info.log
设置.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)
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:消息
与代码与数据库的交互有关
更多信息
views.py
import logging
logger = logging.getLogger("info")
logger.info('something')
你会得到
2017-08-31 13:05:40,492 [INFO]- something
Django logger扩展在开发中的工作方式与在生产中的工作方式不同(settings.DEBUG=True | False)
您希望看到的http请求日志是由django.server logger编写的,
它仅在开发服务器中处于活动状态(runserver命令)
我看到在您的配置中使用了django.request logger。这个logger名称非常混乱,因为正如它的名称所示,用户希望它记录所有http请求,但它不会
django.request将只记录4xx和5xx请求
我已经做了一个详细的解释
Fiefox不允许打开screencas链接,原因是安全原因,即证书不可信。