![](/img/trans.png)
[英]I can not Dockerize MySQL and Django App using docker-compose
[英]Gunicorn blocking logging for django app using docker-compose
我的django应用程式设定了非常简单的记录
DEBUG = True
LOGGING_DIR = os.path.join(BASE_DIR, 'logs')
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'formatters': {
'verbose': {
'format': '%(levelname)s %(asctime)s %(module)s %(process)d %(thread)d %(message)s'
},
'simple': {
'format': '%(levelname)s %(message)s'
},
},
'handlers': {
'console': {
'class': 'logging.StreamHandler',
'formatter': 'verbose'
},
'file': {
'level': 'DEBUG',
'class': 'logging.FileHandler',
'filename': os.path.join(LOGGING_DIR, 'django2.log'),
'formatter': 'verbose'
},
'SysLog': {
'level': 'DEBUG',
'class': 'logging.handlers.SysLogHandler',
'formatter': 'verbose',
'address': ('logsXX.papertrailapp.com', XXXXX)
},
},
'loggers': {
'': {
'handlers': ['console', 'file', 'SysLog'],
'propagate': True,
'level': 'DEBUG',
},
'django.server': {
'handlers': ['console', 'file', 'SysLog'],
'propagate': True,
'level': 'DEBUG',
},
'django.template': {
'handlers': ['console', 'file', 'SysLog'],
'propagate': True,
'level': 'DEBUG',
},
},
}
当我运行python3 manage.py runserver --settings=my_app.local
我可以在控制台中的文件中看到日志记录工作,并被推送到papertrail。
但是,当我使用docker-compose
运行应用程序时,我仅看到控制台输出的日志记录到诸如logger.info('some_error')
类的明确记录的错误,而没有请求的内容,则没有任何写入我拥有的文件,也没有任何内容发送到papertrail。
我的docker compose文件如下所示:
# docker-compose.test.yaml
version: '3'
services:
webapp:
image: local-build:latest
command: ["gunicorn", "my_app.wsgi", "-b", "0.0.0.0:8000", '-t', '500']
env_file: [env.txt]
environment:
DJANGO_SETTINGS_MODULE: my_app.local
ports:
- "8000:8000"
我看过这篇文章,那里的人似乎也有类似的问题: 如何在gunicorn中使用Django日志记录,但是disable_existing_loggers
已经设置为False
。
我找到了答案,我不得不将记录仪更改为gunicorn
并且现在可以正常使用了。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.