【问题标题】:How to do logging when writing an Visual Studio MEF extension编写 Visual Studio MEF 扩展时如何进行日志记录
【发布时间】:2013-05-01 14:33:03
【问题描述】:

我正在使用 MEF 编写 Visual Studio 扩展,我想知道如何将日志记录添加到代码中。 在编写 VsPackage 时,可以使用 MSDN 中所示的“操作日志”。但这在 MEF 扩展中是不可能的。

我应该如何进行日志记录?甚至可以使用 MEF 扩展写入 VS 访问日志吗?我应该使用 nlog 或类似工具进行自己的日志记录吗?

【问题讨论】:

    标签: visual-studio logging mef visual-studio-extensions


    【解决方案1】:

    您仍然可以使用IVsActivityLog。唯一改变的是您访问IVsActivityLog 实例的方式。而不是这个:

    IVsActivityLog log = GetService(typeof(SVsActivityLog)) as IVsActivityLog;
    

    你会先[Import]SVsServiceProvider

    [Import] internal SVsServiceProvider ServiceProvider = null;
    

    那你可以拨打IServiceProvider.GetService:

    IVsActivityLog log = ServiceProvider.GetService(typeof(SVsActivityLog)) as IVsActivityLog;
    

    【讨论】:

    • 执行此操作,运行我的扩展程序,观察它调用 LogEntry(),但在 AppData 中的任何位置都找不到 ActivityLog.xml 文件(除了 10 天未更新的文件)。有什么想法吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-04
    • 2013-12-29
    • 1970-01-01
    • 1970-01-01
    • 2018-01-24
    相关资源
    最近更新 更多