我有一个由队列触发的连续Web作业。 Functions
方法接受TextWriter
参数,我用它来编写作业的输出。
public static void ProcessQueueMessage([QueueTrigger("build")] ProjectTrigger projectInfo, TextWriter log)
我可以浏览Azure门户中的azure-jobs-host-archive
存储容器并查看最新文件以查看主机日志,其中包含JSON,其中包含azure-webjobs-hosts
容器中实际日志的以下路径。 / p>
// ...
"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中并稍后访问它。这可能吗?
答案 0 :(得分:1)
我找不到我要找的确切答案,但您可以使用BlobAttribute
将作业日志保存到特定blob路径,其中ProjectId
和Id
是属性ProjectTrigger
。
public static void ProcessQueueMessage([QueueTrigger("build")] ProjectTrigger projectInfo,
[Blob("projecthistory/{ProjectId}/{Id}.txt", FileAccess.Write)] TextWriter log)