MSBuild でのログの概要
更新 : 2007 年 11 月
MSBuild ロガーは、ビルド イベント、メッセージ、警告、およびエラーのレポートをカスタマイズする方法を提供します。ロガーは情報をコンソール ウィンドウに表示したり、XML またはテキスト ファイルに書き込んだり、ビルド データをデータベースに入力したりできます。
MSBuild ロガー
ロガーは、ビルド イベント、メッセージ、警告、およびエラーからの情報を、簡単に読み取って解釈できるログに中継するために使用します。ロガーの論理は、ILogger インターフェイスを実装するマネージ型に記述されています。
MSBuild の既定のコンソール ロガー
コマンド ラインから MSBuild.exe を実行すると、MSBuild は既定のコンソール ロガーを使用して、ビルド イベント情報をコンソール ウィンドウに表示します。ロガーでレポートする詳細レベルをカスタマイズするには、コマンド ラインで /verbosity スイッチを使用します。
既定のコンソール ロガーは、コンソール ウィンドウの出力を変更できる追加のパラメータを受け取ります。これらのパラメータは、コマンド ラインで /consoleloggerparameters スイッチを使用して指定します。
カスタム ロガーを使用する場合は、既定のコンソール ロガーから表示された情報を非表示にできます。コマンド ラインで /noconsolelogger スイッチを使用して、既定のコンソール ロガーを無効にします。
MSBuild ファイル ロガー
MSBuild には、ビルド イベント情報をファイルに記録するファイル ロガーも含まれています。ファイル ロガーを実行するには、コマンド ラインで次のスイッチを使用します。MyLog.log は、ログ情報の保存先とするファイルです。
/l:FileLogger,Microsoft.Build.Engine;logfile=MyLog.log
ファイル ロガーは合計で 4 つのパラメータを受け取ります。これらの数値は、次のとおりです。
Logfile: 必須パラメータ。ログ情報の保存先とするファイルを指定します。
Append: オプションの boolean パラメータ。指定されたファイルにログを追加するかどうかを示します。true は、ファイル内の既存のテキストにログを追加します。false は、ファイルの内容を上書きします。既定値は false です。
Verbosity: 省略可能なパラメータ。このファイル ロガーについてのみ、グローバルな出力設定をオーバーライドします。こうすると、複数のロガーに、それぞれ異なる出力を記録できます。
Encoding: 省略可能なパラメータ。ファイルのエンコード (UTF-8 など) を指定します。
複数のパラメータを指定するときは、セミコロン (;) で区切ります。たとえば、次のコマンド ラインは、ビルド イベント情報をファイル MyLog.log に記録し、diagnostic 出力および UTF-8 エンコードでファイル内のテキストにログを追加します。
MSBuild MyProj.proj /l:FileLogger,Microsoft.Build.Engine;logfile=MyLog.log append=true;verbosity=diagnostic;encoding=utf-8
ロガーの指定
ビルド時に既定のコンソール ロガー以外のロガーを使用する場合は、コマンド ラインで /logger スイッチを使用してカスタム ロガーを指定します。MSBuild のコマンド ライン スイッチの詳細については、「MSBuild コマンド ライン リファレンス」を参照してください。
ロガーの記述
ロガーの論理はマネージ コードに記述されており、MSBuild コマンド ラインで /logger スイッチを使用して指定されます。
ILogger インターフェイスを実装するマネージ型を記述することにより、独自のロガーを作成できます。詳細については、「方法 : ロガーを記述する」を参照してください。