我目前正在将Go应用程序部署到AWS Elastic Beanstalk。
在应用程序中,我创建了一个用于日志记录的文件。
当应用程序部署时,我会收到一个错误,具体取决于我所做的操作。
当我CCD_ 1。我收到以下错误消息返回open /var/log/golang/golang-server.log: no such file or directory
但当我os.Create("/var/log/golang-server.log")
。我收到以下错误消息返回open /var/log/golang-server.log: permission denied
我目前正在部署他们在网站上提供的示例go.zip应用程序,以确保我的实现/代码都不是问题所在。https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/go-getstarted.html
在那里的代码中,他们还创建了一个用于日志记录的文件,但他们忽略了来自操作系统的错误。创建,因此文件永远不会被创建。
我有一个.eextension文件夹,如果我需要修复一些东西,我可以使用它。
谢谢。
您似乎正在从应用程序执行os.Create
命令。
您的应用程序在webapp
用户下执行,而/var/log
归root
所有。随后你会得到这些错误。
为了解决这个问题,在.ebextension
中可以有os.Create("/var/log/golang/golang-server.log")
0(或files
(部分,它将通过将应用程序添加到/opt/elasticbeanstalk/config/private/logtasks/bundle
来为应用程序创建日志配置文件。
例如,您可以创建:
/opt/elasticbeanstalk/config/private/logtasks/bundle/my-go-app.conf
具有的内容
/var/app/current/log/*.log
其中/var/app/current/log/*.log
将是您的自定义应用程序日志的位置。它可以是其他位置。这只是配置文件的一个示例。