据我所知,WebJob SDK使用AzureWebJobsDashboard连接中定义的blob存储来进行仪表板日志记录。
有没有办法让WebJob SDK使用Azure存储表而不是Blob存储来存储它登录到AzureWebJobsDashboard连接的任何仪表板?
更新1: 本文介绍了日志输出条目在Azure表中的显示方式:
在Azure表中,Console.Out和Console.Error日志如下所示:
如何将WebJob SDK配置为像上面一样登录Azure表?
答案 0 :(得分:1)
简短回答:不。
据我所知,Azure WebJobsDashboard主要使用AzureWebJobsDashboard存储帐户来存储来自WebJobs控制台的日志。此连接字符串是可选的,仅在您计划使用仪表板监视WebJobs时才需要。
WebJob运行时在此存储帐户下创建两个容器,其名称为“azure-webjobs-dashboard”和“azure-jobs-host-archive”。 webJob仪表板使用azure-webJobs-dashboard容器来存储主机和执行端点(功能)详细信息。 Azure-jobs-host-archive用作执行日志的存档。
webjob SDK不支持将日志存储到表中。
如果您仍想记录表中的信息,我建议您不能设置AzureWebJobsDashboard连接字符串并在Web作业函数中编写一些代码,以便自己将消息存储到表存储中。
更新
根据您发布的文章,如果您的网络应用启用了网络应用程序诊断日志的应用程序日志记录,则会自动将webjob日志写入azure存储帐户。
但是,应用程序记录到表存储功能已删除了新门户。
如果要启用它,则应使用powershell。
更多细节,您可以参考以下步骤:
1.创建一个表来存储日志数据。我建议您使用azure storage explorer。
2.生成SAS网址。
3.创建后,您可以复制sas url。
5.在命令下运行:
Login-AzureRmAccount
$PropertiesObject = @{applicationLogs=@{azureTableStorage=@{level="Verbose";sasUrl="yourtableSASurl"}}}
Set-AzureRmResource -PropertyObject $PropertiesObject -ResourceGroupName "yourresourcegroupname" -ResourceType Microsoft.Web/sites/config -ResourceName "webappname/logs" -ApiVersion 2015-08-01 -Force
然后你可以在表格中找到你的日志信息。
但是,我们通常不建议将表用于日志数据 - 它可能导致仅附加模式在规模上对表存储无效。
更多细节,您可以参考此reply。