다음을 통해 공유


활동 로그 사용

VSPackage는 활동 로그에 메시지를 쓸 수 있습니다. 이 기능은 소매 환경에서 VSPackage를 디버깅하는 데 특히 유용합니다.

팁 (조언)

활동 로그는 항상 켜져 있습니다. Visual Studio는 일반 구성 정보가 있는 처음 10개 항목뿐만 아니라 마지막 100개 항목의 롤링 버퍼를 유지합니다.

활동 로그에 항목을 쓰려면

  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. /Log 명령줄 스위치를 사용하여 Visual Studio를 실행하여 세션 중에 디스크에 ActivityLog.xml 씁니다.

  2. Visual Studio를 닫은 후 Visual Studio 데이터의 하위 폴더에서 활동 로그를 찾습니다.

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

  3. 텍스트 편집기를 사용하여 활동 로그를 엽니다. 일반적인 항목은 다음과 같습니다.

    Called for: Company.MyApp.MyAppPackage ...
    

편집기 확장의 가져오기/내보내기 문제 해결: MEF 컴퍼지션 오류 로그에 액세스

편집기 기반 확장을 작성할 때 현재 VS 설치에 없는 항목을 가져오거나 가져오기 또는 내보내기를 잘못 작성하는 경우 문제가 발생할 수 있습니다. 이러한 문제를 찾고 해결하는 주요 방법은 저장되어 있는 %localappdata%\Microsoft\VisualStudio{version}\ComponentModelCache\Microsoft.VisualStudio.Default.errMEF(Managed Extensibility Framework) 컴퍼지션 오류 로그를 참조하는 것입니다. 확장에서 MEF를 사용하는 방법에 대한 자세한 내용은 이 설명서를 참조하세요.

강력한 프로그래밍

활동 로그는 서비스이므로 VSPackage 생성자에서 활동 로그를 사용할 수 없습니다.

활동 로그를 쓰기 직전에 가져와야 합니다. 나중에 사용하기 위해 활동 로그를 캐시하거나 저장하지 마세요.