17

我确实有一个运行 .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 或通过 urlhttps://[mysite].scm.azurewebsites.net/api/logs/docker访问日志文件,例如,日志文件几乎是空的 https://[mysite].scm.azurewebsites.net/api/vfs/LogFiles/2018_09_09_RD0003FF74F63E_docker.log,只有容器起始行存在 在此处输入图像描述

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

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

4

5 回答 5

26

首先你需要启用容器日志

[应用服务] -> 监控 -> 应用服务日志

应用服务登录监控应用服务

然后就可以在【应用服务】->监控->日志流中看到容器日志

在日志流中查看容器日志

UPD

您也可以在 KUDU 中找到日志 在此处输入图像描述

然后是“当前 Docker 日志”

在此处输入图像描述

于 2020-05-05T13:31:30.077 回答
7

我一直在诅咒这一点,最终找到了适合我的东西。

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

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

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

于 2020-07-08T14:59:25.973 回答
2

您是否检查过容器设置中的日志?我按照指南将容器部署到 Azure Web 应用程序。

容器日志

于 2018-09-09T20:13:35.370 回答
2

添加到答案中,如果您在应用服务中部署映像时遇到问题并且需要专门的日志,您可以在部署中心下获取容器配置阶段的 docker 日志,例如:

在此处输入图像描述

于 2021-02-03T16:13:43.493 回答
0

我有同样的确切问题,应用服务容器日志是通用且模糊的。这与 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 提供的相同详细日志(见下面的屏幕截图)

在此处输入图像描述

现在这就是我要说的!

使用 Azure Container Instance 中的错误日志,我发现我的 App Service 无法访问 Sql Server 资源(即使它们在同一个资源组中)。我只是启用了在同一个资源组中访问 Sql Server 资源

在此处输入图像描述

于 2020-02-17T10:01:21.217 回答