Для всех своих сайтов Azure я использую настраиваемую регистрацию в таблицах Azure. Хотя немного больше работы, я считаю, что это дает мне больше контроля над информацией, которая хранится. Как прокомментировал Brosto выше, лучше всего иметь локальный процесс, который периодически загружает журналы в вашу локальную систему. Если вы извлекаете класс из TableServiceEntity
, вы можете определить структуру, содержащую все поля, которые вы хотите регистрировать, и использовать тот же класс для извлечения данных в вашем локальном приложении, которое извлекает журналы. Я поддерживаю некоторые примеры кода, чтобы сделать это на моем протоколировании, используя страницу хранения таблиц Azure , если это кому-нибудь поможет.
Одна из проблем, с которыми я столкнулся при использовании метода Trace.Writeline
, заключается в том, что журналы хранятся в локальном экземпляре и периодически переносятся в хранилище таблиц Azure. Учитывая временный характер экземпляра Azure, все локальное хранилище в лучшем случае следует считать временным. Поэтому всегда есть окно для потери ваших данных журнала, пока они хранятся на локальном диске.
Учитывая стоимость транзакций хранения таблиц Azure, ведение журнала непосредственно в хранилище Azure является чрезвычайно экономически эффективным. Если производительность является для вас серьезной проблемой, возможно, стоит выделить отдельный поток (или потоки) для обслуживания очереди хранения данных регистрации. Хотя это, очевидно, приводит к аналогичным проблемам с временными данными при повторном использовании экземпляра Azure, окно для этого должно быть намного меньше.