如何以编程方式读取 azure web 作业日志
How to programmatically read azure web job log
我有一个由队列触发的连续 Web 作业。 Functions
方法接受一个 TextWriter
参数,我用它来编写我的作业的输出。
public static void ProcessQueueMessage([QueueTrigger("build")] ProjectTrigger projectInfo, TextWriter log)
我可以浏览 Azure 门户中的 azure-jobs-host-archive
存储容器并查看最新文件以查看主机日志,其中包含 JSON 其中包含 [=] 中实际日志的以下路径15=]容器。
// ...
"Arguments": {
"projectInfo": "{\"ProjectId\":1}",
"log": null
},
"Reason": "AutomaticTrigger",
"StartTime": "2015-03-31T00:22:33.0447775+00:00",
"OutputBlob": {
"ContainerName": "azure-webjobs-hosts",
"BlobName": "output-logs/06001f0c69064d4289b3501d0064f11c.txt"
},
// ...
有了它,我可以浏览到 Azure 门户中的 azure-webjobs-hosts
容器并找到 BlobName
指定的文件。
太好了,但我如何以编程方式执行此操作?我希望能够在我的 Web 应用程序中显示输出日志。如果我在作业 运行 时知道主机存档文件的路径,我可以将它存储在 SQL 中并稍后访问它。这可能吗?
我没有找到我正在寻找的确切答案,但您可以使用 BlobAttribute
将作业日志保存到特定的 blob 路径,其中 ProjectId
和 Id
是ProjectTrigger
.
的属性
public static void ProcessQueueMessage([QueueTrigger("build")] ProjectTrigger projectInfo,
[Blob("projecthistory/{ProjectId}/{Id}.txt", FileAccess.Write)] TextWriter log)
我有一个由队列触发的连续 Web 作业。 Functions
方法接受一个 TextWriter
参数,我用它来编写我的作业的输出。
public static void ProcessQueueMessage([QueueTrigger("build")] ProjectTrigger projectInfo, TextWriter log)
我可以浏览 Azure 门户中的 azure-jobs-host-archive
存储容器并查看最新文件以查看主机日志,其中包含 JSON 其中包含 [=] 中实际日志的以下路径15=]容器。
// ...
"Arguments": {
"projectInfo": "{\"ProjectId\":1}",
"log": null
},
"Reason": "AutomaticTrigger",
"StartTime": "2015-03-31T00:22:33.0447775+00:00",
"OutputBlob": {
"ContainerName": "azure-webjobs-hosts",
"BlobName": "output-logs/06001f0c69064d4289b3501d0064f11c.txt"
},
// ...
有了它,我可以浏览到 Azure 门户中的 azure-webjobs-hosts
容器并找到 BlobName
指定的文件。
太好了,但我如何以编程方式执行此操作?我希望能够在我的 Web 应用程序中显示输出日志。如果我在作业 运行 时知道主机存档文件的路径,我可以将它存储在 SQL 中并稍后访问它。这可能吗?
我没有找到我正在寻找的确切答案,但您可以使用 BlobAttribute
将作业日志保存到特定的 blob 路径,其中 ProjectId
和 Id
是ProjectTrigger
.
public static void ProcessQueueMessage([QueueTrigger("build")] ProjectTrigger projectInfo,
[Blob("projecthistory/{ProjectId}/{Id}.txt", FileAccess.Write)] TextWriter log)