AWS Beanstalk 上的 Python。如何对自定义日志进行快照?

Posted

技术标签:

【中文标题】AWS Beanstalk 上的 Python。如何对自定义日志进行快照?【英文标题】:Python on the AWS Beanstalk. How to snapshot custom logs? 【发布时间】:2013-02-08 21:28:16 【问题描述】:

我正在开发适用于 aws beanstalk 环境的 python 应用程序。对于错误处理和调试,建议我将日志写入目录 /var/logs/ 上的自定义 lof 文件。

我应该怎么做才能从 Elastic beanstalk 管理控制台获得能力快照日志?

【问题讨论】:

【参考方案1】:

扩展 Vadim911(和我自己的评论),我使用 .ebextensions 中的配置文件解决了这个问题。这是python代码:

import logging
logging.basicConfig(filename='/opt/python/log/my.log', level=logging.DEBUG)

这是 .ebextensions 配置文件代码:

files:
  "/opt/python/log/my.log" :
   mode: "000666"
   owner: ec2-user
   group: ec2-user
   content: |
       # Askbot log file

此文件的内容(以及其他日志文件)可使用 AWS elastic beanstalk 控制台上的日志快照功能获得。

【讨论】:

是的,但不需要在.ebextensions 中创建文件,因为logging 会在文件处理程序首次初始化时为您执行此操作。如果遇到PermissionError,请尝试按照here 的说明删除container_commands 末尾的日志文件。【参考方案2】:

如果您需要能够从 Beanstalk 管理控制台快照日志文件,您只需将日志文件写入“/opt/python/log/”文件夹即可。 Elastic beanstalk 脚本使用此文件夹进行日志拖尾。

【讨论】:

当我尝试这样做时,我得到了 Permission denied。 查克你到底尝试了什么? logging.basicConfig(filename='/opt/python/log/my_log.log',level=logging.DEBUG)

以上是关于AWS Beanstalk 上的 Python。如何对自定义日志进行快照?的主要内容,如果未能解决你的问题,请参考以下文章

将 Mac 上的 Python 从 2.7 升级到 3.6(或最新),用于弹性 beanstalk 客户端 AWS

AWS Elastic Beanstalk - python 的 nginx 配置(AL2 上的 3.7)flask 应用程序

Python3 + Nginx:将 HTTP 流量重定向到 AWS Elastic Beanstalk 上的 HTTPS

部署在 Elastic Beanstalk 上的 Python Flask 服务器出现 AWS 内部服务错误,日志说 SECRET_KEY 从未设置?

AWS Elastic Beanstalk 上的 Django manage.py

AWS Elastic Beanstalk 上的 Docker - 无法从容器访问环境变量