2015-03-31 3 views
1

У меня есть непрерывное веб-задание, которое запускается очередью. Метод Functions принимает параметр TextWriter, и я использую его для записи вывода моей работы.Как программно читать журнал лазурного веб-журнала

public static void ProcessQueueMessage([QueueTrigger("build")] ProjectTrigger projectInfo, TextWriter log) 

Я могу просматривать контейнер azure-jobs-host-archive хранения в Azure портала и просматривать последнюю версию файла, чтобы увидеть журнал хоста, содержащий JSON, который включает следующий путь к действительному бревну в azure-webjobs-hosts контейнере.

// ... 
"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-webjobs-hosts контейнера на портале Azure и найти файл, указанный в BlobName.

Это здорово, но как я могу сделать это программно? Я хочу иметь возможность отображать журнал вывода в своем веб-приложении. Если бы я знал путь к файлу архива хоста во время работы, я мог бы сохранить его в SQL и получить доступ к нему позже. Это возможно?

+0

Это может быть что-то, но я не нашел никакой документации о том, как ее использовать. https://github.com/projectkudu/kudu/wiki/WebJobs-API – jrummell

ответ

1

Я не нашел точный ответ я искал, но вы можете сохранить журнал заданий на определенный путь большого двоичных объектов с использованием BlobAttribute, где ProjectId и Id являются свойствами ProjectTrigger.

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