在哪里可以找到Azure App Service的Docker容器日志

时间:2018-09-09 13:40:38

标签: c# azure docker azure-web-app-service azure-web-app-for-containers

我确实有一个运行.net core 2应用程序的Docker容器。

使用Program.cs

中的此代码配置日志记录
public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
    WebHost.CreateDefaultBuilder(args)
        .ConfigureLogging((hostingContext, logging) =>
        {
            logging.AddConfiguration(hostingContext.Configuration.GetSection("Logging"));
            logging.AddConsole();
            logging.AddDebug();
        })
        .UseStartup<Startup>();

appsettings.json文件

{
  "Logging": {
    "LogLevel": {
      "Default": "Information"
    }
  },
}

记录似乎还可以,直接运行Kestrel时,我可以在终端中看到日志。同样的东西,在容器化后:命令docker logs显示了我想要的内容。

在Azure Web App中作为容器运行时,生产中会出现问题。我找不到任何一致的docker日志。

我试图通过FTP或通过URL https://[mysite].scm.azurewebsites.net/api/logs/docker访问日志文件,例如,日志文件几乎为空, https://[mysite].scm.azurewebsites.net/api/vfs/LogFiles/2018_09_09_RD0003FF74F63E_docker.log, 仅存在集装箱起跑线 enter image description here

我在通常的门户界面中也有相同的行。

问题是:docker日志是否自动输出到Azure Web App的docker.log文件中?有什么我想念的吗?

5 个答案:

答案 0 :(得分:8)

首先,您需要启用容器日志

[App Service]->监视-> App Service日志

app service logs in monitoring for app service

然后您可以在[App Service]->监视->日志流中看到容器日志

view container logs in log stream

UPD

您还可以在KUDU中找到日志 enter image description here

然后是“当前Docker日志”

enter image description here

答案 1 :(得分:4)

我已经诅咒了好一阵子了,最终发现了一些对我有用的东西。

首先,我按照@dima_horror的回答启用了文件系统日志记录。

接下来,我运行了一个命令行az webapp log tail --name myApp --resource-group myRg

这现在似乎给了我有用的输出(在启用文件系统日志记录之前没有任何帮助)。

答案 2 :(得分:0)

您是否检查了容器设置中的日志?我遵循this指南将容器部署到Azure Web应用。

Container Logs

答案 3 :(得分:0)

我有完全相同的问题,App Service容器日志是通用且模糊的。这与Docker在运行容器时向我们显示的日志不同。

17/02/2020 08:59:25.186 INFO - Site: tutorial-api - Start container succeeded. Container: f8bfa7e27680c0e9551c6157f9d1c8a73c9a3e739b4f15de8586ce52809798d3 17/02/2020 08:59:30.675 INFO - Site: tutorial-api - Application Logging (Filesystem): On 17/02/2020 08:59:44.106 INFO - Site: tutorial-api - Waiting for container to be ready 17/02/2020 08:59:49.116 INFO - Site: tutorial-api - Container has exited 17/02/2020 08:59:49.117 ERROR - Site: tutorial-api - Container could not be started 17/02/2020 08:59:49.120 INFO - Site: tutorial-api - Purging after container failed to start 17/02/2020 08:59:49.120 ERROR - Site: tutorial-api - Unable to start container. Error message: Container could not be started: tutorial-api_20

“无法启动容器,无法启动容器”

哇! Azure刚刚每分钟60秒告诉我一次。

我了解这是生产环境,但是您必须给我们一些东西!

出于无奈,我决定在Azure容器实例资源中运行相同的映像,该映像向您显示Docker提供的相同详细日志(请参见下面的屏幕截图)

enter image description here

现在这就是我在说的!

使用Azure容器实例中的错误日志,我发现我的App Service无法访问Sql Server资源(即使它们位于同一资源组中)。我只是使Sql Server资源可以在同一资源组中访问

enter image description here

答案 4 :(得分:0)

补充一下,如果您在应用服务中部署映像时遇到问题并且需要专门的日志,您可以在部署中心下获取容器预配阶段的 docker 日志,例如:< /p>

enter image description here