我有一个在 Azure 上运行的 Blazor 服务器端应用程序。我想添加跟踪/日志消息(_logger.LogInformation())。我更喜欢使用 Azue 应用服务日志。 但是,我对其他选择持开放态度。
我能够使用在 Azure 上运行的 .Net Core 编写的 API 来获取跟踪/日志记录消息。 这些日志将写入 Azure 应用服务日志。 他们的类型是应用程序。
对于我的 Blazor 应用程序,我按照与 API 相同的步骤设置跟踪/日志记录。但是,当我在 Cloud Explorer 中检查日志文件时,LogFiles 文件夹下没有创建 Application 文件夹。
我确保打开了 Azure 应用服务日志并设置了正确的级别。 见下文。
My 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 的其他选项,我有兴趣了解它们。
感谢您的帮助。
我自己想出来了。
按照此处的步骤,我能够使用应用服务日志与我的 Blazor 服务器端应用程序一起使用日志记录/跟踪:https://learn.microsoft.com/en-us/aspnet/core/fundamentals/logging/? view=aspnetcore-3.1 与以下步骤相关:AzureAppServices
步骤(注意:这些步骤仅适用于文件系统/文件流。我没有设置blob):
1. 更新
appsettings.json
:
"AzureAppServicesFile": {
"IncludeScopes": true,
"LogLevel": {
"Default": "Warning"
}
}
2. 安装 nuget 包
Microsoft.Extensions.Logging.AzureAppServices
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"}");
我希望这些步骤对其他人有帮助。