使用活动日志

VSPackage 可以将消息写入活动日志。 此功能特别适用于在零售环境中调试 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. 使用 /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.err托管扩展性框架 (MEF) 组合错误日志。 若要详细了解如何在扩展中使用 MEF,请检查本文档

可靠编程

由于活动日志是一项服务,因此活动日志在 VSPackage 构造函数中不可用。

在写入活动日志之前,应获取活动日志。 请勿缓存或保存活动日志以供将来使用。