gpt4 book ai didi

python - 在 Heroku 上登录 Django 没有出现

转载 作者:太空狗 更新时间:2023-10-29 17:19:39 24 4
gpt4 key购买 nike

我在 Heroku 上创建了一个应用程序,并将我的 Django 应用程序推送到它。

我使用 heroku logs --tail 监控日志以实时查看它们。

然后,在我的 settings.py 中,我有以下内容:

LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'formatters': {
'verbose': {
'format': ('%(asctime)s [%(process)d] [%(levelname)s] ' +
'pathname=%(pathname)s lineno=%(lineno)s ' +
'funcname=%(funcName)s %(message)s'),
'datefmt': '%Y-%m-%d %H:%M:%S'
},
'simple': {
'format': '%(levelname)s %(message)s'
}
},
'handlers': {
'null': {
'level': 'DEBUG',
'class': 'logging.NullHandler',
},
'console': {
'level': 'INFO',
'class': 'logging.StreamHandler',
'formatter': 'verbose',
'stream': sys.stdout,
}
},
'loggers': {
'MYAPP': {
'handlers': ['console'],
'level': 'INFO',
}
}
}

然后,当我想记录一些东西时,我使用以下内容:

import logging
import sys

logger = logging.getLogger('MYAPP')
logger.info('My message here...')
sys.stdout.flush()

但它没有反射(reflect)在我的日志中。

我的 Procfile:

web: gunicorn myapp.wsgi --log-file=-

编辑:奇怪的是,当我定义日志记录配置和 logging.getLogger('django') 时,我实际上可以将“myapp”更改为“django”,这让我可以使用 print 在我的日志中,但我定义的格式化记录器中没有任何内容。

我什至为我的暂存环境设置了 PYTHONUNBUFFERED=trueDEBUG=1,但我没有看到使用本地时看到的任何日志带有 foreman start web 的版本。

这是什么原因造成的?我如何在 Heroku 中查看我的日志?

最佳答案

您的 Procfile 可能在这里有问题:

如果你想让 gunicorn 记录到标准输出,你必须使用 --logfile=- 命令行选项(你缺少 = !)根据 this answer .

所以你的整个 Procfile 应该是这样的:

web: gunicorn myapp.wsgi --log-file=-

编辑:

由于打印语句对您有效,但日志记录无效,您的日志记录设置可能有问题。确保在应用程序启动期间设置日志记录(您在代码中的什么地方调用 dictConfig?):

import logging
logging.config.dictConfig(LOGGING)
logger = logging.getLogger('MYAPP')
logger.info("Just testing")

关于python - 在 Heroku 上登录 Django 没有出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32234081/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com