MSBuild でのビルド ログの取得

MSBuild でコマンド ライン オプションを使用することで、確認するビルド データの量とビルド データを 1 つ以上のファイルに保存するかどうかを指定できます。 カスタム ロガーを指定して、ビルド データを収集することもできます。 このトピックで説明されていない MSBuild コマンド ライン オプションの詳細については、「コマンド ライン リファレンス」を参照してください。

Note

Visual Studio IDE を使用してプロジェクトをビルドする場合は、ビルド ログを確認することで、それらのビルドをトラブルシューティングできます。 詳細については、ビルド ログ ファイルを表示、保存、および構成する」をご覧ください。

詳細レベルを設定する

詳細レベルを指定せずに MSBuild を使用して、プロジェクトをビルドすると、出力ログに次の情報が表示されます。

  • 重要度 - 高として分類されたエラー、警告、メッセージ。

  • 一部の状態イベント。

  • ビルドの概要。

-verbosity (-v) スイッチを使用して、出力ログに表示するデータ量を制御できます。 トラブルシューティングを行う場合は、detailed (d) または diagnostic (diag) のいずれかの詳細レベルを使用します。後者は情報が最も多くなります。

-verbositydetailed に設定すると、ビルド処理は遅くなることがあります。また、-verbositydiagnostic に設定するとさらに遅くなる可能性があります。

msbuild MyProject.proj -t:go -v:diag

詳細度の設定

次の表では、ログの詳細度 (列の値) が、ログに記録されるメッセージの種類 (行の値) に与える影響を示します。

メッセージの種類と詳細 Quiet 最小 標準 詳細 診断
エラー
警告
高重要度のメッセージ
通常の重要度のメッセージ
低重要度のメッセージ
MSBuild エンジンの追加情報

ビルド ログをファイルに保存する

-fileLogger (fl) スイッチを使用して、ビルド データをファイルに保存することができます。 次の例では、ビルド データを msbuild.log という名前のファイルに保存します。

msbuild MyProject.proj -t:go -fileLogger

次の例では、ログ ファイルに MyProjectOutput.log という名前を付けて、ログ出力の詳細度を diagnostic に設定しています。 -fileLoggerParameters (flp) スイッチを使用して、これら 2 つの設定を指定します。

msbuild MyProject.proj -t:go -fl -flp:logfile=MyProjectOutput.log;verbosity=diagnostic

詳細については、「コマンド ライン リファレンス」を参照してください。

ログ出力を複数のファイルに保存する

次の例では、ログ全体を msbuild1.log に、エラーのみを JustErrors.log に、警告のみを JustWarnings.log に保存します。 例では、3 つのファイルのそれぞれを表すファイル番号を使用します。 ファイル番号は、-fl スイッチと -flp スイッチの直後に指定されています (-fl1-flp1 など)。

ファイル 2 とファイル 3 の -fileLoggerParameters (flp) スイッチは、各ファイルの名前と各ファイルに含まれる内容を指定します。 ファイル 1 には名前が指定されていないため、既定の名前である msbuild1.log が使用されます。

msbuild MyProject.proj -t:go -fl1 -fl2 -fl3 -flp2:logfile=JustErrors.log;errorsonly -flp3:logfile=JustWarnings.log;warningsonly

詳細については、「コマンド ライン リファレンス」を参照してください。

バイナリ ログを保存する

-binaryLogger (bl) スイッチを利用すれば、ログを圧縮されたバイナリ形式で保存できます。 このログには、ビルド プロセスの詳しい説明が含まれ、特定のログ分析ツールで読み取ることができます。

次の例では、バイナリ ログ ファイルが binarylogfilename という名前で作成されます。

-bl:binarylogfilename.binlog

構造化ログ ビューアーを使うと、バイナリ ログを表示し、起こっていることを簡単に確認することができます。

詳細については、「コマンド ライン リファレンス」を参照してください。

カスタム ロガーを使用する

ILogger インターフェイスを実装するマネージド型を記述することにより、独自のロガーを作成できます。 たとえば、カスタム ロガーを使用して、ビルド エラーをメールで送信する、データベースにログを記録する、または XML ファイルにログを記録することができます。 詳細については、「ビルド ロガー」を参照してください。

MSBuild コマンドラインでは、-logger スイッチを使用してカスタム ロガーを指定します。 また、-noconsolelogger スイッチを使用して、既定のコンソール ロガーを無効にすることもできます。