Azure:如何在 Azure 的 ASP.NET 核心应用程序中写入和读取自定义日志消息?
Azure: How to write and read custom log messages in ASP.NET Core application in Azure?
我想实现以下目标:
- 在我的 ASP.NET 核心 Web 服务应用程序中有自定义日志语句。
- 将我的应用程序部署到 Azure(在我的例子中使用 Pulumi)。
- 调用网络服务以触发日志记录代码。
- 以编程方式或通过基于 Azure 浏览器的 GUI 读取记录的消息。
我的目标是 .NET 5.0。
在我的代码中,我做了这样的事情:
public class MyController : ControllerBase
{
private readonly ILogger<MyController> _logger;
public MyController(ILogger<MyController> logger) => _logger = logger;
public async Task<ActionResult<something>> DoStuff()
{
_logger.LogInformation("Hello, World!");
...
}
}
我的 Pulumi 代码包含这个:
var app = new AppService(
"kmsApp",
new AppServiceArgs
{
Logs = new AppServiceLogsArgs
{
ApplicationLogs = new AppServiceLogsApplicationLogsArgs { FileSystemLevel = "Error" },
DetailedErrorMessagesEnabled = true,
FailedRequestTracingEnabled = true,
HttpLogs = new AppServiceLogsHttpLogsArgs
{
FileSystem = new AppServiceLogsHttpLogsFileSystemArgs { RetentionInDays = 1, RetentionInMb = 35 }
}
}
},
...);
有了上面的内容,当我 运行 我的应用程序处于 Visual Studio 的调试模式时,我可以在“输出”窗格中看到日志消息。所以日志代码肯定会触发。但是当我将我的应用程序部署到 Azure 时,我不知道如何获取日志消息,而且我发现 Azure GUI 令人困惑。
我正在苦苦挣扎的是:
- 我需要在我的代码中进行哪些配置 - 例如我的
Program
和 Startup
类? 中的 NuGet 包或东西
- 我需要在 Azure 中做什么配置?
- 在基于 Azure 浏览器的 GUI 中的什么位置可以查看这些日志消息?
- 如何以编程方式获取这些日志(通过 Pulumi 或原始 Azure API)?
当然,我已经查找过文档,但我发现文档错综复杂。其中大部分似乎与响应时间等诊断有关。我只想从我的代码中查看我自己的自定义日志消息...
像这样的帖子给出了 一些 提示,但是在阅读了帖子之后,我仍然不清楚如何 阅读 日志:
可能存在很好的文档和指南。请帮我找到它们。
提前致谢!
您有多种选择:
- 使用 PowerShell 中的 az webapp log 命令将您的应用程序配置为记录到文件
- 使用 PowerShell 中的 az webapp log tail 命令实时查看日志
- Configure 应用程序从 Azure 门户手动记录日志
- 为应用服务启用 Application Insights
要下载日志,请使用 az webapp log download 命令或使用 FTP
连接到日志目录
我想我明白了遗漏了什么。我做了两件事。
第一件事是将我在 Pulumi 中的错误级别从“错误”更改为“详细”:
ApplicationLogs = new AppServiceLogsApplicationLogsArgs { FileSystemLevel = "Verbose" },
另一件事是安装站点扩展:
- 转到 Azure 中的应用服务。
- 在监控下的左侧菜单中,转到应用服务日志。
- 单击显示 单击此处安装 ASP.NET 核心站点扩展以启用应用程序日志记录的横幅。
之后我可以通过 运行 az webapp log tail .
查看日志
现在我只需要弄清楚如何使用 Pulumi 以编程方式执行此操作。
我想实现以下目标:
- 在我的 ASP.NET 核心 Web 服务应用程序中有自定义日志语句。
- 将我的应用程序部署到 Azure(在我的例子中使用 Pulumi)。
- 调用网络服务以触发日志记录代码。
- 以编程方式或通过基于 Azure 浏览器的 GUI 读取记录的消息。
我的目标是 .NET 5.0。
在我的代码中,我做了这样的事情:
public class MyController : ControllerBase
{
private readonly ILogger<MyController> _logger;
public MyController(ILogger<MyController> logger) => _logger = logger;
public async Task<ActionResult<something>> DoStuff()
{
_logger.LogInformation("Hello, World!");
...
}
}
我的 Pulumi 代码包含这个:
var app = new AppService(
"kmsApp",
new AppServiceArgs
{
Logs = new AppServiceLogsArgs
{
ApplicationLogs = new AppServiceLogsApplicationLogsArgs { FileSystemLevel = "Error" },
DetailedErrorMessagesEnabled = true,
FailedRequestTracingEnabled = true,
HttpLogs = new AppServiceLogsHttpLogsArgs
{
FileSystem = new AppServiceLogsHttpLogsFileSystemArgs { RetentionInDays = 1, RetentionInMb = 35 }
}
}
},
...);
有了上面的内容,当我 运行 我的应用程序处于 Visual Studio 的调试模式时,我可以在“输出”窗格中看到日志消息。所以日志代码肯定会触发。但是当我将我的应用程序部署到 Azure 时,我不知道如何获取日志消息,而且我发现 Azure GUI 令人困惑。
我正在苦苦挣扎的是:
- 我需要在我的代码中进行哪些配置 - 例如我的
Program
和Startup
类? 中的 NuGet 包或东西
- 我需要在 Azure 中做什么配置?
- 在基于 Azure 浏览器的 GUI 中的什么位置可以查看这些日志消息?
- 如何以编程方式获取这些日志(通过 Pulumi 或原始 Azure API)?
当然,我已经查找过文档,但我发现文档错综复杂。其中大部分似乎与响应时间等诊断有关。我只想从我的代码中查看我自己的自定义日志消息...
像这样的帖子给出了 一些 提示,但是在阅读了帖子之后,我仍然不清楚如何 阅读 日志:
可能存在很好的文档和指南。请帮我找到它们。
提前致谢!
您有多种选择:
- 使用 PowerShell 中的 az webapp log 命令将您的应用程序配置为记录到文件
- 使用 PowerShell 中的 az webapp log tail 命令实时查看日志
- Configure 应用程序从 Azure 门户手动记录日志
- 为应用服务启用 Application Insights
要下载日志,请使用 az webapp log download 命令或使用 FTP
连接到日志目录我想我明白了遗漏了什么。我做了两件事。
第一件事是将我在 Pulumi 中的错误级别从“错误”更改为“详细”:
ApplicationLogs = new AppServiceLogsApplicationLogsArgs { FileSystemLevel = "Verbose" },
另一件事是安装站点扩展:
- 转到 Azure 中的应用服务。
- 在监控下的左侧菜单中,转到应用服务日志。
- 单击显示 单击此处安装 ASP.NET 核心站点扩展以启用应用程序日志记录的横幅。
之后我可以通过 运行 az webapp log tail
现在我只需要弄清楚如何使用 Pulumi 以编程方式执行此操作。