我是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()
答案 0 :(得分:3)
您可以通过两种方式在Kudu
上找到应用程序日志:
1.在门户网站上:
2.直接在浏览器中访问URL:
https://<Your app name>.scm.azurewebsites.net/
然后请检查路径中的日志文件:D:\home\LogFiles>
此外,您可以打开按钮以在门户网站上的blob容器中收集日志或存储日志。
希望它对你有所帮助。
更新答案:
经过一些测试后,我发现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!')
您可以将上述代码配置为全局变量。