MuxLogger MuxLogger MuxLogger MuxLogger Class

定義

多重化ロガーを表します。Represents a multiplexing logger. このロガーの目的は、ビルド時に、複数のロガーを登録および登録解除することです。The purpose of this logger is to register and unregister multiple loggers during the build. 各プロジェクト システムのビルド要求に対してロガーが登録および登録解除される Visual Studio IDE シナリオをサポートします。Supports the Visual Studio IDE scenario in which loggers are registered and unregistered for each project system's build request. 1 つの物理的なビルドが、それぞれ独自のロガー セットを含む複数の論理ビルドを持つことができます。One physical build can have multiple logical builds, each with its own set of loggers.

MuxLogger は、標準中央 /l 形式ロガーとしてビルド マネージャーに登録します。The MuxLogger registers itself with the build manager as a regular central /l style logger. ビルド マネージャーからメッセージを受信し、メッセージの元の論理ビルドに基づいてメッセージを正しいロガーにルーティングします。It receives messages from the build manager and routes them to the correct logger, based on the logical build that the message came from.

public ref class MuxLogger : Microsoft::Build::Framework::INodeLogger
public class MuxLogger : Microsoft.Build.Framework.INodeLogger
type MuxLogger = class
    interface INodeLogger
    interface ILogger
Public Class MuxLogger
Implements INodeLogger
継承
MuxLoggerMuxLoggerMuxLoggerMuxLogger
実装

注釈

一般的MuxLoggerには、次のように機能します。The MuxLogger generally functions as follows:

  • MuxLogger 、ビルドマネージャーの開始ビルドの開始時に登録されます。The MuxLogger is registered at the beginning of the build manager's Begin build.

    ビルドマネージャーがビルドを開始する前に登録されている logger は、 MuxLoggerと同時にビルド開始イベントを取得します。Any loggers registered before the build manager starts the build get the build-started event at the same time as the MuxLogger.

    ビルドマネージャーがビルドを開始した後に登録された logger は、合成ビルド開始イベントを取得します。Any loggers registered after the build manager starts the build get a synthesized build-started event. イベントが作成されるときにビルド開始イベントのタイムスタンプが決定されるため、イベントをキャッシュできません。また、イベントをキャッシュすると、 MuxLoggerに登録されている logger でのビルド時間が正しくなくなります。The event cannot be cached because the timestamp of the build-started event is determined when the event is created, and caching the event would give incorrect build times in the loggers registered to the MuxLogger.

  • MuxLoggerビルドマネージャーによって初期化されます。The MuxLogger is initialized by the build manager

    MuxLogger 、ビルドマネージャーからイベントソースのすべてのイベントをリッスンし、登録されている logger にイベントを正しくルーティングします。The MuxLogger listens to all events on the event source from the build manager and routes events correctly to the registered loggers.

  • ビルドMuxLoggerが終了ビルドで終了すると、がシャットダウンします。The MuxLogger is shutdown when the build is finished in end build. この時点で、アタッチされているすべての logger が登録解除されます。At this time, it unregisters any loggers attached to it.

  • MuxLogger 、最初のプロジェクト開始イベントのプロジェクト完了イベントが logger ごとに表示されたときに、ビルド完了イベントをログに記録します。The MuxLogger logs the build-finished event when the project-finished event for the first project-started event is seen for each logger.

MuxLogger 、次の方法で logger を登録します。The MuxLogger registers loggers in the following way:

  1. Logger は、メッセージをそのMuxLogger.RegisterLogger logger にルーティングするために使用される送信 ID と共にメソッドに渡されます。The logger is passed to the MuxLogger.RegisterLogger method with a submission ID that is used to route a message to that logger.

  2. MuxLogger 、logger をMuxLoggerイベントソースに登録します。The MuxLogger registers the logger to the MuxLogger event source.

  3. ビルド開始イベントが既にログに記録されてMuxLoggerいる場合、は新しいビルド開始イベントを作成し、それを logger のイベントソースに送信します。If the build-started event has already been logged, the MuxLogger creates a new build-started event and sends it to the logger's event source.

Logger MuxLoggerの登録を解除するには、次の方法があります。The MuxLogger unregisters loggers in the following way:

  1. ビルドの送信が完了すると、 MuxLogger.UnregisterLoggerメソッドはロガーの送信 ID を使用して呼び出されます。When a build submission is completed, the MuxLogger.UnregisterLogger method is called with the submission ID for the logger.

  2. MuxLogger 、送信 ID のプロジェクト完了イベントの成功状態を検索し、ビルド完了イベントを logger に記録します。The MuxLogger looks up the success state of the project-finished event for the submission ID and logs a build-finished event to the logger.

  3. MuxLogger 、イベントソースをクリーンアップします。The MuxLogger cleans up the event source.

    登録解除はログに記録されたスレッド以外のスレッドからのものであり、イベントのログ記録中に登録解除が呼び出されると、同期の問題が発生する可能性があることに注意してください。Note that the unregister comes from a thread other than the logging thread and a synchronization issue could occur if unregister is called while events are being logged.

コンストラクター

MuxLogger() MuxLogger() MuxLogger() MuxLogger()

多重化ロガーの新しいインスタンスを作成します。Creates a new instance of the multiplexing logger.

プロパティ

Parameters Parameters Parameters Parameters

ILogger インターフェイスで必要な Parameters 属性を取得または設定します。Gets or sets the Parameters attribute, required by the ILogger interface.

Verbosity Verbosity Verbosity Verbosity

ILogger インターフェイスで必要な Verbosity 属性を取得または設定します。Gets or sets the Verbosity attribute, required by the ILogger interface.

メソッド

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

指定したオブジェクトが、現在のオブジェクトと等しいかどうかを判断します。Determines whether the specified object is equal to the current object.

(Inherited from Object)
GetHashCode() GetHashCode() GetHashCode() GetHashCode()

既定のハッシュ関数として機能します。Serves as the default hash function.

(Inherited from Object)
GetType() GetType() GetType() GetType()

現在のインスタンスの Type を取得します。Gets the Type of the current instance.

(Inherited from Object)
Initialize(IEventSource) Initialize(IEventSource) Initialize(IEventSource) Initialize(IEventSource)

MuxLogger のインスタンスを指定されたイベント ソースで初期化します。Initialize the MuxLogger instance with the specified event source.

Initialize(IEventSource, Int32) Initialize(IEventSource, Int32) Initialize(IEventSource, Int32) Initialize(IEventSource, Int32)

MuxLogger のインスタンスを指定されたイベント ソースおよび指定されたノードの最大数で初期化します。Initialize the MuxLogger instance with the specified event source and specified maximum number of nodes.

MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

現在の Object の簡易コピーを作成します。Creates a shallow copy of the current Object.

(Inherited from Object)
RegisterLogger(Int32, ILogger) RegisterLogger(Int32, ILogger) RegisterLogger(Int32, ILogger) RegisterLogger(Int32, ILogger)

MuxLogger にロガーを登録し、ビルド開始イベントが既にログに記録されている場合は、ビルド開始イベントを発生させます。Registers a logger on the MuxLogger and raises a build-started event if the build-started event has already been logged.

Shutdown() Shutdown() Shutdown() Shutdown()

MuxLogger をシャットダウンし、状態をクリアします。Shuts down the MuxLogger and clears out any state.

ToString() ToString() ToString() ToString()

現在のオブジェクトを表す文字列を返します。Returns a string that represents the current object.

(Inherited from Object)
UnregisterLoggers(Int32) UnregisterLoggers(Int32) UnregisterLoggers(Int32) UnregisterLoggers(Int32)

MuxLogger から指定したロガーを削除します。Removes the specified logger from the MuxLogger.

適用対象