次の方法で共有


アクティビティ ログの使用

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.errManaged Extensibility Framework (MEF) コンポジション エラー ログを参照することです。 拡張機能で MEF を使用する方法の詳細については、このドキュメントをチェックしてください。

信頼性の高いプログラミング

アクティビティ ログはサービスであるため、アクティビティ ログは VSPackage コンストラクターでは使用できません。

書き込みの直前にアクティビティ ログを取得する必要があります。 今後使用するために、アクティビティ ログをキャッシュまたは保存しないでください。