Поделиться через


Использование журнала действий

VSPackages может записывать сообщения в журнал действий. Эта функция особенно полезна для отладки VSPackage в розничных средах.

Совет

Журнал действий всегда включен. Visual Studio сохраняет скользящий буфер последних 100 записей, а также первые 10 записей, которые содержат общие сведения о конфигурации.

Запись в журнал действий

  1. Вставьте этот код в метод Initialize или в любой другой метод, кроме конструктора VSPackage:

    IVsActivityLog log = GetService(typeof(SVsActivityLog)) as IVsActivityLog;
    if (log == null) return;
    
    int hr = log.LogEntry((UInt32)__ACTIVITYLOG_ENTRYTYPE.ALE_INFORMATION,
        this.ToString(),
        string.Format(CultureInfo.CurrentCulture,
        "Called for: {0}", this.ToString()));
    

    Этот код получает службу SVsActivityLog и приводит ее к интерфейсу IVsActivityLog . LogEntry записывает информационную запись в журнал действий с помощью текущего культурного контекста.

  2. При загрузке VSPackage (обычно при вызове команды или открытии окна) текст записывается в журнал действий.

Проверка журнала действий

  1. Запустите Visual Studio с параметром командной строки /Log , чтобы записать ActivityLog.xml на диск во время сеанса.

  2. После закрытия Visual Studio найдите журнал действий в подпапке для данных Visual Studio:

    *%AppData%\Microsoft\VisualStudio\{version}\ActivityLog.xml

  3. Откройте журнал действий с любым текстовым редактором. Ниже приведена типичная запись:

    Called for: Company.MyApp.MyAppPackage ...
    

Устранение неполадок импорт и экспорт в расширениях редактора: доступ к журналу ошибок композиции MEF

При написании расширения на основе редактора могут возникнуть проблемы, если вы пытаетесь импортировать то, что не существует в текущей установке VS, или если вы неправильно создаете импорт или экспорт. Основным способом поиска и устранения этих проблем является ссылка на журнал ошибок композиции Управляемой платформы расширяемости (MEF), хранящийся в %localappdata%\Microsoft\VisualStudio{version}\ComponentModelCache\Microsoft.VisualStudio.Default.err. Дополнительные сведения об использовании MEF в расширениях проверка этой документации.

Отказоустойчивость

Так как журнал действий является службой, журнал действий недоступен в конструкторе VSPackage.

Перед записью в него необходимо получить журнал действий. Не кэшируйте или не сохраняйте журнал действий для дальнейшего использования.