Azure默认日志

时间:2018-01-22 21:27:43

标签: python azure flask azure-web-app-service

我是Azure的新手,我向Azure部署了一个烧瓶应用程序。如果我在应用程序中打印(控制台日志)某些内容,那就好奇Azure保存日志的位置。只是好奇是否默认有任何日志文件夹或我是否必须自己设置一个?如果是这样,我该如何创建一个?

它创建了日志文件,但它没有写任何东西,

import sys

app = Flask(__name__)

sys.stdout = open('D:/home/LogFiles/app.log', 'w')

print("I am here")

@app.route('/')
def hello_world():
    return 'Hello World!'


if __name__ == '__main__':
    app.run()

1 个答案:

答案 0 :(得分:3)

您可以通过两种方式在Kudu上找到应用程序日志:

1.在门户网站上:

enter image description here

2.直接在浏览器中访问URL:

https://<Your app name>.scm.azurewebsites.net/

然后请检查路径中的日志文件:D:\home\LogFiles>

enter image description here

此外,您可以打开按钮以在门户网站上的blob容器中收集日志或存储日志。

enter image description here

希望它对你有所帮助。

更新答案:

经过一些测试后,我发现Flask Azure应用程序仅在fastcgi上记录KUDU级别日志,尽管我已打开上面提到的诊断日志开关。我发现C#azure app可以在诊断日志配置后记录控制台日志,但是azure Python应用程序没有。

据我所知,使用print输出的所有内容都会转到标准输出(默认情况下)。

所以,我建议解决这个问题的方法是将脚本的标准输出重定向到KUDU上的一些文件:

>>> import sys
>>> sys.stdout = open('<Absolute path on Kudu(such as D:\home\LogFiles\app.log)>', 'w')
>>> print('Hello World!') 

您可以将上述代码配置为全局变量。

相关问题