Я хочу использовать «классический» подход к записи текста текста в текстовый файл. Вместо того, чтобы сохранять это локально, я хочу записать данные в блокблока. Это код:Регистрация с использованием Azure BlockBlob (Запись в текстовые файлы с использованием нескольких сценариев сценариев)
CloudStorageAccount storageAccount = CloudStorageAccount.Parse(StorageConnectionString);
CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();
CloudBlobContainer share = blobClient.GetContainerReference("logStorage");
var logFile=share.GetAppendBlobReference("mylog.log");
logFile.AppendText("This is a log entry");
Это работает, но только в сценарии одного писателя, как documenation четко сказано, для AppendText():
Этот API должен использоваться строго в одном сценарии писателя, потому что API внутренне использует условный заголовок с добавлением смещения, чтобы избежать дублирования блоков , которые не работают в сценарии с несколькими сценариями.
Так что, если мне нужно, что функциональность в нескольких писательских сценариев, что я должен использовать в качестве альтернативы?
вы пробовали плагин log4net для лазурного хранения. довольно просто настроить https://github.com/stemarie/log4net.Azure. Вы всегда можете иметь простой класс-оболочку, который возвращает объект singleton log4net. – Aravind
Я знаю это приложение. Они устраняют проблему, сохраняя каждый вход в отдельный файл. Не очень умное решение этой проблемы. Кроме того: это xml not plan text –
oh yeah .. или вы можете попробовать иметь отдельную службу, которая следит за папкой журнала на вашем компьютере, и она может загружать файлы по мере их появления. тогда как основная задача/поток будет просто создавать журналы в папке. и загрузчик позаботится о загрузке. в загрузчике вы можете увидеть, можете ли вы использовать TPL для запуска столько задач, сколько загружаемых файлов. – Aravind