Получение исключения «BlockCountExceedsLimit» при использовании log4net.Appender.AzureAppendBlobAppender - PullRequest
0 голосов
/ 14 мая 2018

Я использую log4net.Appender.AzureAppendBlobAppender для регистрации информации и ошибок моего веб-приложения.Иногда я получаю исключение "BlockCountExceedsLimit".Это происходит из-за того, что добавочный BLOB-объект принимает только 50000 коммитов блоков, после этого он через исключение (Конфликт (409)).Я проверил код и обнаружил, что он ожидает 512 событий журнала и сбрасывает каждую запись журнала отдельно в добавочный двоичный объект.Таким образом, мы можем регистрировать только 50 000 записей в день.

Может кто-нибудь помочь мне в этом?Кто-нибудь знает альтернативу для этого?

Спасибо, Картик

Ответы [ 2 ]

0 голосов
/ 24 мая 2018

Я немного изменил код для добавления большого двоичного объекта, как только буфер достигнет порогового значения (512 записей журнала), он очистит записи журнала за один раз.

enter image description here

0 голосов
/ 14 мая 2018

Согласно вашему описанию, я предположил, что вы используете log4net.Appender.Azure пакет nuget.Как вы можете видеть в AzureAppendBlobAppender.cs :

    private static string Filename(string directoryName)
    {
        return string.Format("{0}/{1}.entry.log.xml",
                             directoryName,
                             DateTime.Today.ToString("yyyy_MM_dd",
                                                             DateTimeFormatInfo.InvariantInfo));
    }

Насколько я понимаю, вы можете следовать AzureAppendBlobAppender.cs , чтобы написать свой собственный AzureAppendBlobAppender и настроитьFilename, SendBuffer методы для удовлетворения ваших требований.

Я использую log4net.Appender.AzureAppendBlobAppender для регистрации информации и ошибок моего веб-приложения.

Посколькувы используете веб-приложение Azure для размещения своего приложения, вы можете использовать встроенный журнал приложений (Blob), а сторона Azure поможет вам создавать журналы ежечасно.Вы можете войти на портал Azure, выбрать свое веб-приложение, включить ведение журнала приложений (Blob), установить уровень ведения журнала на «Информация», подробности, за которыми вы можете следить Включить ведение журнала диагностики для веб-приложений в службе приложений Azure .

Для вашего приложения вы можете использовать следующий код для регистрации информации и ошибок.

System.Diagnostics.Trace.TraceError("xxxxx");

System.Diagnostics.Trace.TraceInformation("xxxxx");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...