在哪里可以找到 Azure 应用服务的 docker 容器日志

Ben*_*tra 13 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>();
Run Code Online (Sandbox Code Playgroud)

appsettings.json文件

{
  "Logging": {
    "LogLevel": {
      "Default": "Information"
    }
  },
}
Run Code Online (Sandbox Code Playgroud)

日志好像还可以,直接运行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,仅存在容器起始行 在此处输入图片说明

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

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

dim*_*ror 20

首先你需要启用容器日志

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

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

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

在日志流中查看容器日志

UPD

您也可以在 KUDU 中找到日志 在此处输入图片说明

然后是“当前 Docker 日志”

在此处输入图片说明


Dav*_*oni 7

我一直在诅咒这个很长一段时间,最终找到了对我有用的东西。

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

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

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

  • 令人沮丧的是,您不能简单地在门户中获取日志 - “日志流”正在混合来自“Kudu”和应用程序日志的日志:/ (3认同)
  • `az webapp log tail` 似乎不适用于 Linux 应用程序计划。 (2认同)