如何将 Django 标准输出转发到 Elastic Beanstalk 日志?

Posted

技术标签:

【中文标题】如何将 Django 标准输出转发到 Elastic Beanstalk 日志?【英文标题】:How to get Django stdout forwarded to Elastic Beanstalk logs? 【发布时间】:2021-01-13 23:19:47 【问题描述】:

我的 Django 应用程序使用 Amazon Linux 2 平台在 Elastic Beanstalk 上运行。我的问题是输出到标准输出(例如 print ("hello world") )没有存储在日志包中找到的任何日志文件中。

我刚刚从旧的 Amazon Linux 平台迁移到 AL2。使用旧平台时,我没有遇到日志问题。

我缺少什么配置?

【问题讨论】:

你能检查/var/log/web.stdout.log文件吗? 我刚刚注意到当我重新启动服务器时日志到达那里。在此之前,它们被“某处”缓冲。 不知道日志投递有没有延迟。最好的检查方法是通过 ssh 进入 EB 实例并从那里检查它是如何工作的。 【参考方案1】:

添加 PYTHONUNBUFFERED=1 作为环境变量就可以了。

【讨论】:

以上是关于如何将 Django 标准输出转发到 Elastic Beanstalk 日志?的主要内容,如果未能解决你的问题,请参考以下文章

将标准输出字节从 Process 转发到 WebSocket 或读取当前 InputStream 长度

运行 Django 测试时如何查看标准输出?

运行 Django 测试时如何查看标准输出?

SharpPcap - 从标准输出捕获

标准输入 C++

使用 python 的 TCP 端口 - 如何将命令输出转发到 tcp 端口?