如何以编程方式读取azure Web作业日志

时间:2015-03-31 02:42:03

标签: c# azure azure-webjobs azure-queues

我有一个由队列触发的连续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中并稍后访问它。这可能吗?

1 个答案:

答案 0 :(得分:1)

我找不到我要找的确切答案,但您可以使用BlobAttribute将作业日志保存到特定blob路径,其中ProjectIdId是属性ProjectTrigger

public static void ProcessQueueMessage([QueueTrigger("build")] ProjectTrigger projectInfo, 
                   [Blob("projecthistory/{ProjectId}/{Id}.txt", FileAccess.Write)] TextWriter log)