用于Linux Docker容器日志记录的App Service

时间:2017-11-07 19:20:42

标签: azure azure-web-sites azure-web-app-service azure-api-apps

我已将asp.net core 2.0.应用程序部署到azure linux docker容器中,并试图找出处理应用程序日志的最佳方法。

我无法进入一些不错/最佳实践工作流程。

当然,有Kudu服务或FTP访问日志,它们都显示了docker日志,但问题是如何很好地处理日志级别?

像往常一样,我想在生产中启用Warning及以上版本,但如果出现问题,我想打开Trace以查看所有内容,但无需重新部署/重启/任何东西。由于我们在码头工具中且无法访问appsettings.json,因此reloadOnChange显然无法工作,我不知道该怎么做?

这种情况的最佳做法是什么?

1 个答案:

答案 0 :(得分:4)

我想强调一些您可以用于记录的最佳实践(对于长篇文章感到抱歉):

我们将有用的信息记录到Docker日志中,该日志可以帮助您在网站未启动或重新启动时对网站进行故障排除。我们记录了比在Docker日志中看到的更多的日志,我们将继续努力使这个日志记录更有用。 您可以在/ LogFiles目录中找到Docker日志。您可以通过Kudu(高级工具)Bash控制台,使用FTP客户端访问它,或使用我们的API下载当前日志来访问它。 (有关此信息,请参阅此帖子中的“您可以使用Kudu发现并下载最新的Docker日志”。)Docker日志的命名约定为YYYY_MM_DD_RDxxxxxxxxxxxx_docker.log。

请注意,如果您尝试使用FTP客户端下载当前正在使用的Docker日志,则可能会因文件锁定而出错。在这种情况下,您可以使用我们的API下载它(请参阅本文中的“您可以使用Kudu发现并下载最新的Docker日志”),或者您可以在控制台中使用“tail”来查看它。 (我们的API会为您提供当前的Docker日志,因此如果您想查看过去的日志,请使用“tail”选项。) 要使用tail查看Docker日志,请访问控制台,切换到LogFiles目录,然后运行以下命令: tail 2017_09_05_RD * 0FA_docker.log

“您可以使用Kudu发现并下载最新的Docker日志”。

我们有一个API,可以让您轻松查看当前的Docker日志详细信息(例如文件名等),并以Zip格式下载当前的Docker日志。 要以JSON格式查看有关当前Docker日志的详细信息,您可以使用以下URL: https://[sitename].scm.azurewebsites.net/api/logs/docker 您可以通过转到高级工具(Kudu)然后将“/ api / logs / docker”附加到URL来轻松实现此目的。这个输出将是一个JSON响应,其中包含最相关和最新的Docker日志。 如果要以Zip格式下载上述API中显示的日志,请在URL中附加“zip”。例如: https://[sitename].scm.azurewebsites.net/api/logs/docker/zip 您还可以单击高级工具(Kudu)中的链接以Zip格式下载最新的Docker日志。

Azure App Service具有丰富的功能集,但并非所有这些功能目前都可用于Linux应用程序。我们一直在努力添加新功能,一旦添加了新功能,它们就会在Azure门户的菜单上启用。如果在Linux应用程序的菜单中禁用(灰显)特定功能的菜单项,那只是因为我们尚未添加该功能。

参考: https://blogs.msdn.microsoft.com/waws/2017/09/08/things-you-should-know-web-apps-and-linux/