如何为 Azure 上的 Blazor 服务器端应用程序添加跟踪/日志记录消息? (首选应用服务日志)
How can I add tracing / logging messages for a Blazor Server Side App on Azure? (Preferred with App Service Logs)
我有一个在 Azure 上运行的 Blazor 服务器端应用程序。我想添加跟踪/日志消息 (_logger.LogInformation())。我更愿意使用 Azue 应用服务日志。但是,我对其他选择持开放态度。
我能够使用在 Azure 上运行的 .Net Core 中编写的 API 获取跟踪/日志消息。这些日志写入 Azure 应用服务日志。他们的类型是应用程序。
对于我的 Blazor 应用程序,我按照与 API 相同的步骤设置跟踪/日志记录。但是,当我在 Cloud Explorer 中检查日志文件时,没有创建 LogFiles 文件夹下的 Application 文件夹。
我确保我打开了 Azure 应用服务日志并设置了正确的级别。见下文。
我的Program.cs使用默认设置。我读到的应该自动设置日志记录。 (它来自我的 API)见下文。
下面是我添加的用于跟踪/日志记录的代码示例。
public class VpbDelegateAdminService : IVpbDelegateAdminService
{
private readonly HttpClient _httpClient;
private readonly IJsonSerializerWrapper _jsonSerializerWrapper;
private readonly TokenProvider _tokenProvider;
private readonly ILogger<VpbDelegateAdminService> _logger;
public VpbDelegateAdminService(HttpClient httpClient, IJsonSerializerWrapper jsonSerializerWrapper, TokenProvider tokenProvider, ILogger<VpbDelegateAdminService> logger)
{
_httpClient = httpClient;
_jsonSerializerWrapper = jsonSerializerWrapper;
_tokenProvider = tokenProvider;
_logger = logger;
}
public async Task<VpbDelegateListVm> GetVpbDelegatesAsync(int pageNo, string searchText)
{
_logger.LogInformation($"Argument(s)- pageNo: {pageNo}, searchText: {searchText ?? "null"}");
正如我上面提到的,我更愿意使用 Azure 应用服务日志。但是,如果 Blazor 无法做到这一点,或者如果有人成功使用其他选项与 Blazor 一起使用,我很想听听他们的消息。
感谢您的帮助。
我建议使用 Application Insights,对于基于 .NET 的应用程序,它为您提供了完成 APM 的绝佳方式。如果您想与 ILogger 一起使用,请查看 here. If you want to get started without ILogger then take a look here.
我自己想出来了。
通过执行此处的步骤,我能够使用应用服务日志让日志记录/跟踪与我的 Blazor 服务器端应用一起工作:https://docs.microsoft.com/en-us/aspnet/core/fundamentals/logging/?view=aspnetcore-3.1 与以下步骤相关:AzureAppServices
步骤:(注意:这些步骤仅针对文件系统/文件流。我没有设置 blob):
1。更新应用设置:
"AzureAppServicesFile": {
"IncludeScopes": true,
"LogLevel": {
"Default": "Warning"
}
}
2。为 Microsoft.Extensions.Logging.AzureAppServices
安装 nuget 包
3。使用以下代码更新 Program.cs:
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureLogging(logging => logging.AddAzureWebAppDiagnostics())
.ConfigureServices(serviceCollection => serviceCollection
.Configure<AzureFileLoggerOptions>(options =>
{
options.FileName = "diagnostics-";
options.FileSizeLimit = 50 * 1024;
options.RetainedFileCountLimit = 5;
}))
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>();
});
4.为应用程序日志(文件系统)打开应用程序服务日志
5.将级别设置为信息
我的日志/跟踪(见下文)开始出现在 Cloud Explorer 中
_logger.LogInformation($"Argument(s)- pageNo: {pageNo}, searchText: {searchText ?? "null"}");
我希望这些步骤对其他人有所帮助。
我有一个在 Azure 上运行的 Blazor 服务器端应用程序。我想添加跟踪/日志消息 (_logger.LogInformation())。我更愿意使用 Azue 应用服务日志。但是,我对其他选择持开放态度。
我能够使用在 Azure 上运行的 .Net Core 中编写的 API 获取跟踪/日志消息。这些日志写入 Azure 应用服务日志。他们的类型是应用程序。
对于我的 Blazor 应用程序,我按照与 API 相同的步骤设置跟踪/日志记录。但是,当我在 Cloud Explorer 中检查日志文件时,没有创建 LogFiles 文件夹下的 Application 文件夹。
我确保我打开了 Azure 应用服务日志并设置了正确的级别。见下文。
我的Program.cs使用默认设置。我读到的应该自动设置日志记录。 (它来自我的 API)见下文。
下面是我添加的用于跟踪/日志记录的代码示例。
public class VpbDelegateAdminService : IVpbDelegateAdminService
{
private readonly HttpClient _httpClient;
private readonly IJsonSerializerWrapper _jsonSerializerWrapper;
private readonly TokenProvider _tokenProvider;
private readonly ILogger<VpbDelegateAdminService> _logger;
public VpbDelegateAdminService(HttpClient httpClient, IJsonSerializerWrapper jsonSerializerWrapper, TokenProvider tokenProvider, ILogger<VpbDelegateAdminService> logger)
{
_httpClient = httpClient;
_jsonSerializerWrapper = jsonSerializerWrapper;
_tokenProvider = tokenProvider;
_logger = logger;
}
public async Task<VpbDelegateListVm> GetVpbDelegatesAsync(int pageNo, string searchText)
{
_logger.LogInformation($"Argument(s)- pageNo: {pageNo}, searchText: {searchText ?? "null"}");
正如我上面提到的,我更愿意使用 Azure 应用服务日志。但是,如果 Blazor 无法做到这一点,或者如果有人成功使用其他选项与 Blazor 一起使用,我很想听听他们的消息。
感谢您的帮助。
我建议使用 Application Insights,对于基于 .NET 的应用程序,它为您提供了完成 APM 的绝佳方式。如果您想与 ILogger 一起使用,请查看 here. If you want to get started without ILogger then take a look here.
我自己想出来了。
通过执行此处的步骤,我能够使用应用服务日志让日志记录/跟踪与我的 Blazor 服务器端应用一起工作:https://docs.microsoft.com/en-us/aspnet/core/fundamentals/logging/?view=aspnetcore-3.1 与以下步骤相关:AzureAppServices
步骤:(注意:这些步骤仅针对文件系统/文件流。我没有设置 blob):
1。更新应用设置:
"AzureAppServicesFile": {
"IncludeScopes": true,
"LogLevel": {
"Default": "Warning"
}
}
2。为 Microsoft.Extensions.Logging.AzureAppServices
安装 nuget 包3。使用以下代码更新 Program.cs:
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureLogging(logging => logging.AddAzureWebAppDiagnostics())
.ConfigureServices(serviceCollection => serviceCollection
.Configure<AzureFileLoggerOptions>(options =>
{
options.FileName = "diagnostics-";
options.FileSizeLimit = 50 * 1024;
options.RetainedFileCountLimit = 5;
}))
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>();
});
4.为应用程序日志(文件系统)打开应用程序服务日志
5.将级别设置为信息
我的日志/跟踪(见下文)开始出现在 Cloud Explorer 中
_logger.LogInformation($"Argument(s)- pageNo: {pageNo}, searchText: {searchText ?? "null"}");
我希望这些步骤对其他人有所帮助。