在哪里可以找到 Azure 应用服务的 docker 容器日志
Where can I find docker container logs for Azure App Service
我有一个 Docker 容器 运行 一个 .net core 2 应用程序。
使用 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"
}
},
}
日志记录似乎还可以,当直接 运行ning Kestrel 时,我可以在终端中看到日志。同样的事情,当容器化时:命令 docker logs
显示了我想要的。
生产中出现问题,当 运行 作为 Azure Web 应用程序中的容器时。我找不到任何一致的 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
,
仅存在容器起跑线
我在通常的门户界面中也有相同的行。
问题是:docker日志是否自动输出到Azure Web App的docker.log文件中?有什么我想念的吗?
您检查过容器设置中的日志吗?我按照 this 指南将容器部署到 Azure Web 应用程序。
我有完全相同的问题,应用服务容器日志是通用且模糊的。这与我们 运行 容器时 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
"Unable to start container, container couldn't be started"
哇! Azure 刚刚每 60 秒告诉我一分钟过去了。
我知道这是生产环境,但你必须给我们一些东西!
出于沮丧,我决定在 Azure 容器实例资源中 运行 相同的图像,它会向您显示 Docker 提供的相同详细日志(请参见下面的屏幕截图)
这就是我要说的!
使用 Azure 容器实例中的错误日志,我发现我的应用服务无法访问 Sql 服务器资源(即使它们在同一资源组中)。我只是让 Sql 服务器资源可以在同一个资源组中访问
首先你需要启用容器日志
[应用服务] -> 监控 -> 应用服务日志
然后在【应用服务】->监控->日志流中可以看到容器日志
UPD
您还可以在 KUDU 中找到日志
然后"Current Docker Logs"
我已经咒骂了好一阵子了,最终找到了适合我的东西。
首先我根据@dima_horror的回答启用了文件系统日志记录。
接下来我运行一个命令行az webapp log tail --name myApp --resource-group myRg
这现在似乎给了我有用的输出(在启用文件系统日志记录之前它什么也没给我)。
为了补充答案,如果您在应用服务中部署映像时遇到问题并且需要专门的日志,您可以在下面获取容器配置阶段的 docker 日志部署中心,例如:
我有一个 Docker 容器 运行 一个 .net core 2 应用程序。
使用 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"
}
},
}
日志记录似乎还可以,当直接 运行ning Kestrel 时,我可以在终端中看到日志。同样的事情,当容器化时:命令 docker logs
显示了我想要的。
生产中出现问题,当 运行 作为 Azure Web 应用程序中的容器时。我找不到任何一致的 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
,
仅存在容器起跑线
我在通常的门户界面中也有相同的行。
问题是:docker日志是否自动输出到Azure Web App的docker.log文件中?有什么我想念的吗?
您检查过容器设置中的日志吗?我按照 this 指南将容器部署到 Azure Web 应用程序。
我有完全相同的问题,应用服务容器日志是通用且模糊的。这与我们 运行 容器时 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
"Unable to start container, container couldn't be started"
哇! Azure 刚刚每 60 秒告诉我一分钟过去了。
我知道这是生产环境,但你必须给我们一些东西!
出于沮丧,我决定在 Azure 容器实例资源中 运行 相同的图像,它会向您显示 Docker 提供的相同详细日志(请参见下面的屏幕截图)
这就是我要说的!
使用 Azure 容器实例中的错误日志,我发现我的应用服务无法访问 Sql 服务器资源(即使它们在同一资源组中)。我只是让 Sql 服务器资源可以在同一个资源组中访问
首先你需要启用容器日志
[应用服务] -> 监控 -> 应用服务日志
然后在【应用服务】->监控->日志流中可以看到容器日志
UPD
您还可以在 KUDU 中找到日志
然后"Current Docker Logs"
我已经咒骂了好一阵子了,最终找到了适合我的东西。
首先我根据@dima_horror的回答启用了文件系统日志记录。
接下来我运行一个命令行az webapp log tail --name myApp --resource-group myRg
这现在似乎给了我有用的输出(在启用文件系统日志记录之前它什么也没给我)。
为了补充答案,如果您在应用服务中部署映像时遇到问题并且需要专门的日志,您可以在下面获取容器配置阶段的 docker 日志部署中心,例如: