활동 로그 사용
VSPackage는 활동 로그에 메시지를 쓸 수 있습니다. 이 기능은 소매 환경에서 VSPackage를 디버깅하는 데 특히 유용합니다.
팁
활동 로그는 항상 켜져 있습니다. Visual Studio는 일반 구성 정보가 있는 처음 10개 항목뿐만 아니라 마지막 100개 항목의 롤링 버퍼를 유지합니다.
활동 로그에 항목을 쓰려면
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는 현재 문화권 컨텍스트를 사용하여 활동 로그에 정보 항목을 씁니다.
VSPackage가 로드되면(일반적으로 명령이 호출되거나 창이 열리는 경우) 텍스트가 활동 로그에 기록됩니다.
활동 로그를 검사하려면
/Log 명령줄 스위치로 Visual Studio를 실행하여 세션 중에 디스크에 ActivityLog.xml을 씁니다.
Visual Studio를 닫은 후 Visual Studio 데이터의 하위 폴더에서 활동 로그를 찾습니다.
*%AppData%\Microsoft\VisualStudio\{version}\ActivityLog.xml
원하는 텍스트 편집기에서 활동 로그를 엽니다. 다음은 일반적인 항목입니다.
Called for: Company.MyApp.MyAppPackage ...
편집기 확장의 가져오기/내보내기 문제 해결: MEF 컴퍼지션 오류 로그에 액세스
편집기 기반 확장을 작성할 때 현재 VS 설치에 없는 항목을 가져오거나 가져오기 또는 내보내기를 잘못 작성하는 경우 문제가 발생할 수 있습니다. 이러한 문제를 찾고 해결하는 주요 방법은 %localappdata%\Microsoft\VisualStudio{version}\ComponentModelCache\Microsoft.VisualStudio.Default.err
에 저장되어 있는 MEF(Managed Extensibility Framework) 컴퍼지션 오류 로그를 참조하는 것입니다. 확장에서 MEF를 사용하는 방법에 대한 자세한 내용은 이 설명서를 참조하세요.
강력한 프로그래밍
활동 로그는 서비스이므로 VSPackage 생성자에서 활동 로그를 사용할 수 없습니다.
활동 로그에 쓰기 직전에 활동 로그를 가져와야 합니다. 나중에 사용하기 위해 활동 로그를 캐시하거나 저장하지 마세요.