![](/img/trans.png)
[英]Get logs from juypter notebook kernel in azure app service
[英]Where is local logs for Python on Azure App Service?
如果我在本地运行,我可以看到我的print()
文本。 但即使在启用文件系统应用服务日志之后,我仍然看不到任何日志,无论是在_docker.log
还是流式日志中。 在 Azure 应用服务上为 Python 生成本地日志的正确方法是什么?
为了关闭循环,我最终制作了一个简单的日志方法
def writeLog(log: str):
basepath = path.dirname(__file__)
today = date.today()
filepath = path.abspath(path.join(basepath, "..", "..", "LogFiles", "MyBot_" + today.strftime("%Y-%m-%d") + ".log"))
f = open(filepath, "a+")
f.write(today.strftime("%Y-%m-%d %H:%M:%S") + " " + log)
f.write("\n")
f.close()
如果我不close()
,我将无法下载该文件。 将其与其他日志文件一起放在LogFiles
中,可以更轻松地从 VS Code 中查看
我使用 Flask web 进行测试并按照以下文档设置 WSGI_LOG: 配置 FastCGI 处理程序,它将创建日志,但是日志文件只有StdErr
日志,关于StdOut
,它始终为空白。
因此,我使用另一种解决方案将脚本的标准 output 重定向到某个日志文件。
import sys
sys.stdout = open('D:\\home\\LogFiles\\app.log', 'w')
print("test")
您可以配置上述代码,然后发布您的代码并运行它。
我遇到了类似的问题。 在我的情况下,日志记录与容器中的其他日志不一致。 最后,它似乎更像是一个日志缓冲问题,而不是 Azure 应用服务特有的问题。 通过在 Azure App Service 中设置以下环境变量来解决:设置 -> 容器 -> 应用程序设置
PYTHONUNBUFFERED = 1
在 docker 运行命令中,您可以将其设置为:
--env PYTHONUNBUFFERED=1
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.