【发布时间】:2013-08-06 06:06:34
【问题描述】:
作为Heroku has read-only file system,除了两个目录(log 和 tmp)之外,我想将我的日志从 python 应用程序转储到其中之一。
推送到heroku服务器应用程序的git存储库包含我创建的两个文件夹(检查了两次,甚至在推送后下载了应用程序以检查两个目录是否都存在)。 在运行“heroku run bash”时,我只能看到“tmp”文件夹 - 使用“ls -la”甚至应用程序都看不到“log”,因为我收到有关 .log 文件丢失位置的错误。
2013-08-05T13:10:41.170434+00:00 heroku[web.1]: Starting process with command `python runserver.py`
2013-08-05T13:10:43.132418+00:00 app[web.1]: Traceback (most recent call last):
2013-08-05T13:10:43.609980+00:00 app[web.1]: File "runserver.py", line 2, in <module>
2013-08-05T13:10:43.725134+00:00 app[web.1]: from app_name import app
2013-08-05T13:10:43.850738+00:00 app[web.1]: File "/app/app_name/__init__.py", line 13, in <module>
2013-08-05T13:10:43.968714+00:00 app[web.1]: from logger import flask_debug
2013-08-05T13:10:44.081900+00:00 app[web.1]: File "/app/logger.py", line 8, in <module>
2013-08-05T13:10:44.194540+00:00 app[web.1]: logging.config.dictConfig(CONFIG)
2013-08-05T13:10:44.306174+00:00 app[web.1]: File "/app/.heroku/python/lib/python2.7/logging/config.py", line 797, in dictConfig
2013-08-05T13:10:44.425589+00:00 app[web.1]: dictConfigClass(config).configure()
2013-08-05T13:10:44.535392+00:00 app[web.1]: File "/app/.heroku/python/lib/python2.7/logging/config.py", line 579, in configure
2013-08-05T13:10:44.274067+00:00 heroku[web.1]: Process exited with status 1
2013-08-05T13:10:44.287252+00:00 heroku[web.1]: State changed from starting to crashed
这么快的想法我想检查是否可以将日志放在 tmp 文件夹中。应用程序启动,一切看起来都很好......但没有从应用程序中转储。
实际上我迷路了,因为我已经寻找了很长时间的解决方案。
也许有人会告诉我:
-
为什么/app_name文件夹下的“log”目录不可见?
-
为什么“tmp”目录收不到日志?
http://speedy.sh/VaR2w/logger.conf - 这是我的记录器的 *.conf 文件 http://speedy.sh/c3QNs/logger.py - 这里是记录器
附言。日志正在用于“tmp”文件夹配置的控制台。
【问题讨论】:
-
我通常讨厌这种 cmets,但是:您能分享一下通过将日志写入磁盘来实现的具体目标吗?任何时候测功机启动时,日志都会“消失”(大约每天一次),另外,如果您有多个测功机,他们将写入不同的日志,如果您手动重新启动测功机等......如果您想从您的应用程序中持久保存日志自己用还有更好的办法。
-
我有点担心这可能是答案,因为 heroku 按照您的回复工作。虽然我仍然很好奇为什么在写我应该可以访问它的时候看不到/log,为什么即使应用程序没有重新启动,/tmp 中也没有日志。你有什么更好的方法? :)
标签: python logging heroku flask