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

dee*_* zg 1 azure azure-web-sites azure-api-apps azure-web-app-service

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

我只是无法进入一些好的/最佳实践工作流。

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

像往常一样,我想Warning在生产中打开和打开,但如果出现问题,我想打开Trace以查看所有内容,但不进行重新部署/重新启动/任何操作。由于我们在docker中并且无法访问,appsettings.json因此reloadOnChange显然无法正常工作,我不确定该怎么做?

这种情况下的最佳实践是什么?

小智 5

我想着重介绍一些可用于记录日志的最佳做法(很长的帖子很抱歉):

我们会将有用的信息记录到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目录,然后运行此命令:尾部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。其输出将是带有最相关和最新的Docker日志的JSON响应。如果要以Zip格式下载上述API中显示的日志,请在URL后面附加“ zip”。例如: https:// [sitename] .scm.azurewebsites.net / api / logs / docker / zip 您也可以单击Advanced Tools(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/