azure - 我需要如何登录才能在应用服务日志中查看我的日志
问题描述
我已启用日志记录到应用程序日志记录到文件系统和 Blob。ILogger<T>.LogInformation()
我使用和记录消息Trace.WriteLine()
。这些在 blob 中都不可见。我也无法在文件系统上找到它们。当我启用日志流时,我也看不到它们。
我需要在我的 ASP.NET Core 应用程序中配置一些东西吗?
解决方案
提供[Microsoft.Extensions.Logging.AzureAppServices][1]
程序包将日志写入 Azure 应用服务应用文件系统中的文本文件以及 Azure 存储帐户中的 Blob 存储。
提供程序包不包含在共享框架中。要使用提供程序,请将提供程序包添加到项目中。
要配置提供程序设置,请使用AzureFileLoggerOptions和AzureBlobLoggerOptions,如以下示例所示:
public static void Main(string[] args)
{
var host = CreateHostBuilder(args).Build();
var todoRepository = host.Services.GetRequiredService<ITodoRepository>();
todoRepository.Add(new Core.Model.TodoItem() { Name = "Feed the dog" });
todoRepository.Add(new Core.Model.TodoItem() { Name = "Walk the dog" });
var logger = host.Services.GetRequiredService<ILogger<Program>>();
logger.LogInformation("Seeded the database.");
host.Run();
}
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureLogging(logging => logging.AddAzureWebAppDiagnostics())
.ConfigureServices(serviceCollection => serviceCollection
.Configure<AzureFileLoggerOptions>(options =>
{
options.FileName = "azure-diagnostics-";
options.FileSizeLimit = 50 * 1024;
options.RetainedFileCountLimit = 5;
}).Configure<AzureBlobLoggerOptions>(options =>
{
options.BlobName = "log.txt";
})
)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>();
});
您可以参考以下链接以获取更多参考:
希望能帮助到你。
推荐阅读
- tensorflow - 将训练好的 gensim word2vec 模型保存为 tensorflow SavedModel
- angular - Firebase 用户对象和自定义 Firestore 对象
- javascript - 如何获得具有可观察到的居中文本的Chart js?
- r - 仅在 rpivotTable 中的表
- laravel - 在 laravel 6+ 中没有异常处理会发生什么?
- javascript - 如何在 Angular 应用程序中创建多行 mat-autocomplete 元素
- macos - Gazebo 卡在加载你的世界
- python - 如何在 Python 中正确使用字符串文字 - 同时使用 " 和 { 并使用格式替换
- storage - 如何在多个设备之间同步数据?
- python - Discord.py 如何使用 discord.ext.commands 禁用命令